I have a json_array - $json_array
which is multi-level the code below "spits it" out correctly but is there a better way of doing it? What I will end up with is a structured XML document with the array keys as the element names - but they must be in the same format as the json array:
e.g.
[1] => stdClass Object (
[content] => stdClass Object ( array )
[general] => stdClass Object ( array )
[costing] => stdClass Object ( array )
[socialbits] => stdClass Object (array )
[options] => stdClass Object ( (array)
( [0] => stdClass Object ( array(array) ) ) ) )
Where 1 is the main array key (actually the id from a database)
$json_array = json_encode($data);
foreach(json_decode($json_array) as $k=>$val) {
foreach($val as $k1=>$v2){
echo $k1;
echo '<br />';
foreach($v2 as $k3=>$v3){
echo $k3;
echo '<br />';
if(is_array($v3)){
foreach($v3 as $k4=>$v4){
foreach($v4 as $k5=>$v5){
echo $k5;
echo '<br />';
foreach($v5 as $k6=>$v6){
echo $v6;
echo '<br />'
}
}
}
}
echo $v3;
}
echo '<br />';
}
echo '<br />';
}
// } OP included the closing brace.
Thoughts and ideas most welcome thanks -
EDIT
I have no objection to edits of code, but for the sake of others please make sure they are accurate. This is a corrected form of the edit;
foreach(json_decode($json_array) as $k=>$val) {
foreach($val as $k1=>$v2){
echo $k1;
echo '<br />';
foreach($v2 as $k3=>$v3){
echo $k3;
echo '<br />';
if(is_array($v3)){
foreach($v3 as $k4=>$v4){
foreach($v4 as $k5=>$v5){
echo $k5;
echo '<br />';
foreach($v5 as $k6=>$v6){
echo $v6;
echo '<br />';
}
}
}
} else {
echo $v3;
}
}
echo '<br />';
}
echo '<br />';
}