Juned Ansari Juned Ansari - 8 days ago 6
PHP Question

unable to get node key name of nested array in php

I am trying to display nested array, and it prints whole array but unable to print node element like in our example [destinations],[QUOTATIONS].
i want to print array with this node elements.

actually i am generating tree view using this nested element that why i need to display node element also.

stdClass Object
(
[id] => 148
[status] => I
[consname] => juned ansari
[consusername] => junedconsultant
[agency_name] => mayur
[agency_username] => MayurMaroliya
[destinations] => Array
(
[0] => stdClass Object
(
[id] => 260
[from_date] => 2016-11-24
[to_date] => 2016-11-29
[country_id] => IN
[QUOTATIONS] => Array
(
[id] => 260
[name] => ABC
)

)

)

)


here is my recursion code.

<?php
function traverseArray($array)
{
// Loops through each element. If element again is array, function is recalled. If not, result is echoed.
foreach ($array as $key => $value) {
if (is_array($value)) {
traverseArray($value);
} else {
if (gettype($value) == 'object') {
echo "<ul>";
traverseArray($value);
} else {
echo '<li><a href="#">' . $key . " : " . $value . '</a>';
}
}
}
}
traverseArray($transition_data);

Answer

You can print node element in if block of you array checking. like:

if (is_array($value)) {
            echo $key;//this will print the nodes(destinations,QUOTATIONS) .you cal add ul here
            traverseArray($value);
        }
Comments