考虑具有以下结构的多维数组:
[a] => Array
(
[b] => Array
(
[c] => Array
(
[value] => 0
[other_value] => 1
)
)
)
我想访问$array[a][b][c][value]
,但value
也可以访问$array[a][b][c][d][value]
。
我并不完全是如何描述我想要做的事情。我认为另一种解释是:我想访问$array[a][b][c]
中的每个元素,但也能够访问$array[a][b][c][d]
等中的每个元素,例如使用foreach
,但是对于未知嵌套数组的数量。
答案 0 :(得分:2)
array_walk_recursive()
可以派上用场。
array_walk_recursive($array, function($val, $key) {
if ($key == "value") {
// do something
}
});
答案 1 :(得分:0)
该任务看起来像遍历二叉树。因此,递归是编写代码的最简单方法。
$values=array();
function collectValues($array) {
foreach ($array as $key=>$item) {
if ($key=="value")
$values[]=$item;
else if(is_array($item))
collectValues($item));
}
}
答案 2 :(得分:0)
我不完全确定,但这可能会解决您的问题。
<?php
function get_next($a)
{
if(!is_array($a))
echo $a;
else
{
foreach($a as $b)
return get_next($b);
}
}
?>
以这种方式调用函数:
get_next($your_array);
答案 3 :(得分:-1)
像while(is_array($ array [x]))$ array = $ array [x]; $阵列[ “值”] ...