У меня есть json_array - $json_array
, который является многоуровневым, и код ниже «выплевывает» его правильно, но есть ли лучший способ сделать это? В итоге я получу структурированный XML-документ с ключами массива в качестве имен элементов, но они должны быть в том же формате, что и массив json:
, например
[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) ) ) ) )
Где 1 - основной ключ массива (фактически идентификатор из базы данных)
$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.
Мысли и идеи приветствуются -
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 />';
}