Hungry
Hungry

Reputation: 45

Iterate through Nested array in PHP

I have a nested array on this link Array Sample

I am using code below to parse this, but second and beyond depth it's returning nothing. However tried with recursive function.

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>";
    }
}

What I am doing Wrong? Please help.

Upvotes: 1

Views: 1749

Answers (2)

rinu
rinu

Reputation: 1059

Version of J. Litvak's answer that works with SimpleXMLElement objects.

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

show($ArrXML);

Upvotes: 1

Vladimir
Vladimir

Reputation: 1391

You can use recurcive function to print all values:

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

show($ArrXML);

Upvotes: 0

Related Questions