php数组中的简单关键字搜索


Simple key search in php array

我有一个简单的多维数组,如下所示:

$arr1 = array(3,5,array(4,"foo", array("bar","qux"=>"id")));

然后是递归函数

function getVal($arr){
    foreach($arr as $key=>$val){
      if($key=="qux"){
        echo $val."<br>";
      }elseif(is_array($val)){
        getVal($val);
      }
    }
}

最后,第一次调用函数

getVal($arr1);

但是,它输出

3
4
bar
id

而不仅仅是"id"。我哪里错了?

你的一些键是数字,这意味着你在做0 == 'qux',在PHP中它的计算结果是true(qux被转换为整数0,显然0==0是真的)。您需要使用===,它比较值AND类型。

试试这个:

<?php
$arr1 = array(3,5,array(4,"foo", array("bar","qux"=>"id")));
function getVal($arr){
    foreach($arr as $key=>$val){
      if($key==="qux"){
        echo $val."<br>";
      }elseif(is_array($val)){
        getVal($val);
      }
    }
}
getVal($arr1);
?>