in_array没有找到价值

时间:2016-04-21 15:18:17

标签: php sql pdo

我有一个数组$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.问题出在哪里?

1 个答案:

答案 0 :(得分:2)

in_array的第一个参数应该是一个要查找的值,并且你要传递一个数组来查找一个不能正常工作的一维数组。

尝试更改此内容:

in_array(array($wordsRow['subcategory_id']), $data['permissions'])

对于这样的事情:

in_array($wordsRow['subcategory_id'], $data['permissions'])