我有像这样的json数据
{
"code": 1,
"data": [
{
"apple": [
{
"id": 127,
"type": 1,
"color": green,
"stage": 1,
"status": 1
},
{
"id": 128,
"type": 2,
"color": red,
"stage": 1,
"status": 1
}
]
},
{
"oranges": [
{
"id":133
"type": 3,
"color": rainbow,
"stage": 1,
"status": 1
},
{
"id":134
"type": 3,
"color": black,
"stage": 1,
"status": 1
}
]
},
{
"berry": [
{
"id":4
"type": 2,
"color": white,
"stage": 1,
"status": 1
}
]
},
{
"watermelon": [
{
"id":5
"type": 2,
"color": red and blue,
"stage": 1,
"status": 1
}
]
}
],
"bleh": "Succesfully queried database"
}
我想在php中创建一个像这样的东西
Fruit | Type | color
apple 1 green
apple 2 red
oranges 3 rainbow
oranges 3 black
所以基本上我想要的是当像苹果这样的对象在其中有多个数组时,表格中显示apple
及相应的数据。
这就是我到目前为止所拥有的
$output = json_decode(JsonData);
$result =$output['data'][0]['apple'];
<table>
<thead>
<tr>
<th>Fruits</th>
<th>Type</th>
<th>color</th>
</tr>
</thead>
<tbody>
<?php if(!isset($result)){ ?>
<tr>
<td>Empty</td>
<td>Empty</td>
<td>Empty</td>
<td>Empty</td>
</tr>
<?php else{
foreach($result as $apples){ ?>
<tr>
<td></td>
<td><?php echo "$apples["type"]";?></td>
<td><?php echo "$apples["color"]";?></td>
</tr>
<?php } ?>
<?php } ?>
</tbody>
</table>
答案 0 :(得分:1)
嗯,一眼就看出这是完全错误的语法
<?php echo "apples["type"]";?>
可能你需要这样的东西
<?php echo $apples["type"];?>
你所拥有的内容可能会给你一个语法错误,因为PHP会像这样看到它
<?php echo "apples[" type "]"; ?>
"apples["
是一个完整的字符串,type
是一个未定义的常量,它在其所在的位置是意外的,然后是一个额外的字符串"]";
你可以在这个沙箱中测试它
这给了我们这个
Parse error: syntax error, unexpected 'type' (T_STRING), expecting ',' or ';' in /in/nR8vF on line 5
更新
还有一些其他明显的问题,只有这个
$output = json_decode(JsonData);
$result = $output['data'][0]['apple'];
我认为JsonData
只是一个占位符,或者您是否错过了$
?
然后,由于您没有将第二个参数设置为true,因此data
将是对象样式。我个人会这样做
$output = json_decode(JsonData, true);
只需将其用作数组。
其他人已经涵盖了双重“foreach”协议(用于循环水果),所以我不会重新讨论它,我会覆盖它但是它是“晚餐”时间而我的妻子有点“激怒”当我弄乱代码而不是从办公室上来时(我在地下室有办公室)。
答案 1 :(得分:1)
$arr = json_decode($json, true);
foreach($arr['data'] as $fruit => $types){
foreach($types as $info){
echo $fruit;
echo $info['type'];
echo $info['color'];
}
}
这是您将JSON数据导入PHP的方法。我相信你可以创建一个HTML表格来显示这些信息。
答案 2 :(得分:0)
如果您想展示所有水果,那么您将需要以下内容:
$result =$output['data'];
然后更新你的foreach循环
foreach($result as $key=>$fruit){
foreach($fruit as $k=>$dets){?>
<tr>
<td></td>
<td><?php echo $dets["type"];?></td>
<td><?php echo $dets["color"];?></td>
</tr>
<?php }
} ?>
这也是无效的json