php in_array用法

Ste*_*Ste 0 php arrays

我有这个代码:ids行就像(548,15,78)字符串concat的id:

$sql = "SELECT *, ids FROM.....";
$results = $Database->Select($sql);
$last = end($results);
foreach($results as $i){
    $userArray = explode(",",$i['ids']);
    if( in_array($_SESSION['AUTH_ID'], $userArray) ){
        echo $i['name'];
        if($last != $i)
            echo ",\n";
    }
}
Run Code Online (Sandbox Code Playgroud)

这打印后总是一个逗号$i['name']......这是错的..我怎么能解决它?我怎么能算in_array新的价值?

ere*_*non 7

有一种更简单的方法可以做到这一点:

/* ... */
$logged_in[] = array();
if( in_array($_SESSION['AUTH_ID'], $userArray) ){
    $logged_in[] = $i['name'];
}

echo implode(', ', $logged_in);
Run Code Online (Sandbox Code Playgroud)

这打印了Alice,Bob

  • 否则,使用`implode`而不是`join`,是的.(这是一个很少使用的`implode`的别名,代码已经使用`explode`.) (3认同)