2016-02-09 71 views
0

我试图通过嵌套数组在我的JSONObject中循环。我的目标是基于JSONObject的数据之前我嵌套数组目前我使用该工具来获取JSON在JSON中使用PHP循环嵌套数组使用PHP

$restaurant = json_decode(file_get_contents("restaurant.json")); 

这里的内容是旧的foreach循环呼应div的

<?php foreach($restaurant->menu->starter as $starter){ 
       echo '<h3>'.$starter->name.'</h3><br><p>'.$starter->price.'</p><br>'; 

      } ?> 

这里是我的新的JSONObject

{ 
    "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 
     } 
     ] 
    } 
    ] 
} 

我不知道如何例如写这个循环只为首发数据显示

+0

为什么你让你的数据结构更难遍历?除非你确信订购永远不会改变,这种新的结构不允许直接访问你需要的属性 – Steve

+0

看看http://stackoverflow.com/questions/35288287/loop-through-json-array-inside- an-array/35288581#35288581 –

回答

1
$arr = json_decode($json); // $json is your JSON. 
foreach($arr->menu[0]->starter as $starter){ 
    echo '<h3>'.$starter->name.'</h3><br><p>'.$starter->price.'</p><br>'; 
} 
+0

是否有可能通过每个数组循环遍历每个数组,然后通过嵌套的foreach循环遍历每个数组内容。我正在考虑如果内容存在,如果不是,则不显示它来回显div – Joey93