1
下面的代码:PHP in_array()只能在嵌套如果
$result = $conn->query("SELECT * FROM $myTable");
while($result && ($row = $result->fetch_assoc()) && in_array($row['id'], $accessible_ids)){
// do something
}
不会做的事,而这个小修改:
$result = $conn->query("SELECT * FROM $myTable");
while($result && ($row = $result->fetch_assoc())){
if(in_array($row['id'], $accessible_ids)){
//do something
}
}
请问什么。 $accessible_ids
来自这里:
$result = $conn->query("SELECT id FROM $someTable WHERE userID = $userID");
$accessible_ids = array();
while($result && ($row= $result->fetch_assoc())){
$accessible_ids[] = $row['id'];
}
但是:如果$accessible_ids
包含元素 '1' 而已,这两个代码工作。但一旦$accessible_ids
包含“2”和“3”,只有较低的代码适用于我。
我只想知道为什么这是一件事,我做了什么值得拥有。 (查找原因,我花了一段时间,我在使用PHP 7和XAMPP)
更新:
输出示例:
print_r($accessible_ids);
$result = $conn->query("SELECT * FROM $myTable");
while($result && ($row = $result->fetch_assoc())){
if(in_array($row['id'], $accessible_ids)){
//do something
echo '<br>';
print_r($row['id']);
}
}
产地:
Array ([0] => 2 [1] => 3)
2
3
你能分享的'的print_r($ accessible_ids)'和'的print_r($行[ '身份证'])'样? –