遍历无限的嵌套数组

时间:2014-11-11 20:52:13

标签: php

我正在尝试找到一种获得价值的方法" title"来自嵌套在其他数组中任何无限深度的数组。

我意识到这需要一个单独的功能,但是现在我无法找到如何在链中显示值,以便我可以将其表示为另一个函数。

该功能将被告知要下降多少级别,总是查看"孩子"下一个数组的元素。

$new_map=array();
$new_map[0]["title"]="Level zero";
$new_map[0]["child"]="";


$new_map1=array();
$new_map1[0]["title"]="Level one";
$new_map1[0]["child"]="empty1";

$new_map2=array();
$new_map2[0]["title"]="Level two";
$new_map2[0]["child"]="empty2";

$new_map3=array();
$new_map3[0]["title"]="Level three";
$new_map3[0]["child"]="empty3";


$new_map[0]["child"]=$new_map1;

$new_map1[0]["child"]=$new_map2;

$new_map2[0]["child"]=$new_map3;



foreach($new_map as $key => $val){

foreach($new_map[$key]["child"] as $key2 => $val2){

foreach($new_map[$key]["child"][$key2]["child"] as $key3 => $val3){
echo $new_map[$key]["child"][$key2]["child"][$key3]["title"]."<br/>";
}

}

}

1 个答案:

答案 0 :(得分:0)

您应该使用深度优先搜索来获取值&#34;标题&#34;来自嵌套在其他数组中任何无限深度的数组。不是每次都采用新阵列,而是采用3D阵列

  

$ new_map [i] [0] [&#34; child&#34;]其中i表示第i个数组。

然后使用dfs for $ new_map [i] [0] [&#34; child&#34;],检查子数组$ new_map [i + 1] [0] [&#34; child&#34;如果它包含您查询的值标题。