Php 遍历无限嵌套数组

Php 遍历无限嵌套数组,php,Php,我试图找到一种方法,从嵌套在其他数组中任何无限深度的数组中获取值“title” 我意识到这将需要一个单独的函数,但现在我很难找到如何显示链中的值,这样我就可以将其表达到另一个函数中 函数将被告知要降低多少级别,始终在“子”元素中查找下一个数组 $new_map=array(); $new_map[0]["title"]="Level zero"; $new_map[0]["child"]=""; $new_map1=array(); $new_map1[0]["title"]="Level

我试图找到一种方法,从嵌套在其他数组中任何无限深度的数组中获取值“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/>";
}

}

}
$new_map=array();
$new_map[0][“title”]=“零级”;
$new_map[0][“child”]=“”;
$new_map1=array();
$new_map1[0][“title”]=“一级”;
$new_map1[0][“child”]=“empty1”;
$new_map2=array();
$new_map2[0][“title”]=“二级”;
$new_map2[0][“child”]=“empty2”;
$new_map3=数组();
$new_map3[0][“title”]=“三级”;
$new_map3[0][“child”]=“empty3”;
$new_-map[0][“child”]=$new_-map 1;
$new_map1[0][“child”]=$new_map2;
$new\u map2[0][“child”]=$new\u map3;
foreach($key=>$val的新映射){
foreach($new_map[$key][“child”]作为$key2=>$val2){
foreach($key3=>$val3的新映射[$key][“child”][$key2][“child”]as$key3){
echo$new_map[$key][“child”[$key2][“child”[$key3][“title”]。“
”; } } }
您应该使用深度优先搜索从嵌套在其他数组中任何无限深度的数组中获取值“title”。不要每次都使用新阵列,而是使用3D阵列

$new_map[i][0][“child”],其中i表示第i个数组


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

您可以将嵌套数组视为树,有许多基于递归的树遍历算法