如何检测多维数组的最内层数组键?

时间:2016-04-13 13:33:28

标签: php multidimensional-array

array(1) {
  ["farm"]=>
  array(2) {
    ["folder1"]=>
    array(2) {
      ["horse"]=>
      array(1) {
        ["fred.jpg"]=>
        string(30) "farm/folder1/horse/fred.jpg"
      }
      ["cat"]=>
      array(1) {
        ["john.jpg"]=>
        string(28) "farm/folder1/cat/john.jpg"
      }
    }
    ["folder2"]=>
    array(1) {
      ["cat"]=>
      array(2) {
        ["sam.jpg"]=>
        string(27) "farm/folder2/cat/sam.jpg"
        ["cat"]=>
        array(1) {
          ["john.jpg"]=>
          string(32) "farm/folder2/cat/cat/john.jpg"
        }
      }
    }
  }
}

是否可以只检测最内部的数组键?

foreach($array as $key => $value){
   if ($key == $most_inner_array) {
     echo $key;
   }
}

因此,在这种情况下,结果将是:

fred.jpg
john.jpg
sam.jpg
john.jpg

1 个答案:

答案 0 :(得分:1)

如果值不是数组,您可以递归遍历数组并打印密钥。

如果只是打印一个像你的例子那样的值,你可以只用array_walk_recursive()来完成,没有任何条件。类似的东西:

array_walk_recursive($your_array, function($value, $key) {
    echo $key . "\n";
});