如何在嵌套数组中搜索?

时间:2016-04-17 21:12:22

标签: php arrays

我有一个包含这些嵌套数组的变量:

echo $var;

/* Output:
Array(
       [0] => Array
         (
             [id] => 1
             [box] => 0
         )

       [2] => Array
         (
             [id] => 2
             [box] => 0
         )

       [3] => Array
         (
             [id] => 3
             [box] => 1
         )
) */

现在我想知道[box] => 1中是否有$var?我怎样才能做到这一点?实际上我可以通过in_array()函数在数组中搜索,但我不知道如何对嵌套数组执行此操作?

3 个答案:

答案 0 :(得分:2)

好吧,您可以简单地使用foreach循环,这是一种简单明了的方法,例如::

foreach($arr as $key => $val) {
    if($val["box"] == 1) {
        echo "Found";
    }
}

答案 1 :(得分:1)

您可以使用enter image description here然后使用array_column

$index = array_search(1, array_column($var, 'box'));

如果没有匹配,则返回值为false

如果您不需要知道匹配元素的索引,但只需要知道是否匹配,那么您可以使用array_search

$match = in_array(1, array_column($var, 'box'));

答案 2 :(得分:0)

还有另一篇文章(Search for values in nested array)讨论了类似的问题。接受的答案建议使用array_walk()