[英]Loop through JSON array inside an array
Previously I was using a foreach loop to access the data in my JSON object but now I have nested an array inside an array. 以前,我使用foreach循环访问JSON对象中的数据,但现在我已将数组嵌套在数组中。 Here is my JSON
这是我的JSON
{
"name": "Takeaway Kings",
"menu": [
{
"starter": [
{
"name": "Samosas",
"price": 3.5
},
{
"name": "Chaat",
"price": 1.99
}
]
},
{
"dessert": [
{
"name": "Kulfi",
"price": 2.5
},
{
"name": "Kheer",
"price": 2.99
}
]
},
{
"main": [
{
"name": "Lamb Biryani",
"price": 4.5
},
{
"name": "Chicken Tikka Masala",
"price": 5.99
}
]
}
]
}
I am trying to loop through each array inside menu and then loop through what is in each nested array. 我试图遍历菜单内的每个数组,然后遍历每个嵌套数组中的内容。
I was previously using this to output data before I changed the JSONObject layout. 在更改JSONObject布局之前,我以前曾用它来输出数据。
<?php foreach($restaurant->menu->starter as $starter){
echo '<h3>'.$starter->name.'</h3><br><p>'.$starter->price.'</p><br>';
} ?>
Please Use Below Code For use Inner Values 请使用以下代码以使用内部值
$data=json_decode($data);
foreach($data->menu as $menu){
foreach($menu as $key => $value){
foreach($value as $key_inner => $value_inner){
echo '<h3>'.$value_inner->name.'</h3><br><p>'.$value_inner->price.'</p><br>';
}
}
}
try below code: 试试下面的代码:
$json = '{
"name": "Takeaway Kings",
"menu": [
{
"starter": [
{
"name": "Samosas",
"price": 3.5
},
{
"name": "Chaat",
"price": 1.99
}
]
},
{
"dessert": [
{
"name": "Kulfi",
"price": 2.5
},
{
"name": "Kheer",
"price": 2.99
}
]
},
{
"main": [
{
"name": "Lamb Biryani",
"price": 4.5
},
{
"name": "Chicken Tikka Masala",
"price": 5.99
}
]
}
]
}';
echo '<pre>';
$json_arr = json_decode($json, true);
//print_r(call_user_func_array('array_merge',$json_arr['menu']));
echo "name: " . $json_arr['name'];
echo '<br />';
$menu_array = call_user_func_array('array_merge',$json_arr['menu']);
foreach ($menu_array as $name => $arr) {
echo '<br />';
echo "Menu name: " . $name;
foreach($arr as $v){
echo '<br />';
echo $v['name'].' : '.$v['price'];
}
}
output: 输出:
name: Takeaway Kings
Menu name: starter
Samosas: 3.5
Chaat: 1.99
Menu name: dessert
Kulfi: 2.5
Kheer: 2.99
Menu name: main
Lamb Biryani: 4.5
Chicken Tikka Masala: 5.99
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.