具有未知维度的PHP数组中的访问值

时间:2014-05-16 18:27:45

标签: php

考虑具有以下结构的多维数组:

[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,但是对于未知嵌套数组的数量。

4 个答案:

答案 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]; $阵列[ “值”] ...