我有一个数组$data['permissions']
,如下所示:Array ( [0] => 2 [1] => 11 )
和我编写的in_array
函数不起作用。这是代码:
$data['permissions'] = $auth_user->getPermissions();
$stmt = $auth_user->runQuery("SELECT * FROM words;");
$stmt->execute();
while($wordsRow=$stmt->fetch(PDO::FETCH_ASSOC)){
echo $wordsRow['subcategory_id'];?>
<tr>
<?php
if($wordsRow['user_id'] == $_SESSION['user_session'] ||
in_array(array($wordsRow['subcategory_id']), $data['permissions'])){ ?>
<td><?php echo $wordsRow['name'];?></td>
<td><?php echo $wordsRow['subcategory_id'];?></td>
<?php
}
?>
</tr>
<?php
}
$wordsRow['user_id'] == $_SESSION['user_session']
中的 if
工作正常但in_array
中的if
函数未找到此数组中实际存在的值。
echo $wordsRow['subcategory_id'];
in while循环显示:11 2 11.问题出在哪里?
答案 0 :(得分:2)
in_array
的第一个参数应该是一个要查找的值,并且你要传递一个数组来查找一个不能正常工作的一维数组。
尝试更改此内容:
in_array(array($wordsRow['subcategory_id']), $data['permissions'])
对于这样的事情:
in_array($wordsRow['subcategory_id'], $data['permissions'])