在PHP中迭代嵌套数组

时间:2018-01-17 07:41:00

标签: php arrays multidimensional-array

我在此链接Array Sample

上有一个嵌套数组

我正在使用下面的代码来解析这个问题,但是第二个并且超出深度它没有返回任何内容。但尝试使用递归函数。

printAllValues($ArrXML);

function printAllValues($arr) {
    $keys = array_keys($arr);
    for($i = 0; $i < count($arr); $i++) {
        echo $keys[$i] . "$i.{<br>";
        foreach($arr[$keys[$i]] as $key => $value) {
            if(is_array($value))
            {
                printAllValues($value);
            }
            else
            {
            echo $key . " : " . $value . "<br>";        
           }
        }
        echo "}<br>";
    }
}

我做错了什么?请帮忙。

2 个答案:

答案 0 :(得分:1)

J. Litvak的答案版本适用于SimpleXMLElement对象。

function show($array) {
    foreach ($array as $key => $value) {
        if (!empty($value->children())) {
            show($value);
        } else {
            echo 'key=' . $key . ' value=' . $value. "<br>";
        }
    }
}

show($ArrXML);

答案 1 :(得分:0)

您可以使用recurcive功能打印所有值:

function show($array) {
    foreach( $array as $key => $value) {
        if (is_array($value)) {
            show($value);
        } else{
            echo 'key=' . $key . ' value=' . $value. "<br>";
        }
    }
}

show($ArrXML);