我有一个包含这些嵌套数组的变量:
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()
函数在数组中搜索,但我不知道如何对嵌套数组执行此操作?
答案 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()
。