Reputation: 108
I need to print JSON
output in the table
{
"response_code":200,
"pnr":"6642876935",
"train_num":"12792",
"train_name":"PNBE SC EXP",
"doj":" 6- 7-2015",
"from_station":
{
"code":"PNBE"
},
"to_station":
{
"code":"SC"
},
"reservation_upto":
{
"code":"SC"
},
"boarding_point":
{
"code":"PNBE"
},
"class":"SL",
"no_of_passengers":"1",
"chart_prepared":"N",
"passengers":[
{
"sr":"1",
"booking_status":"W\/L 43,
GNWL","current_status":
"RAC 19"
}
],
"noms":1,
"error":null
}
Thank You,
Upvotes: 3
Views: 96
Reputation: 1540
Because your json has multiple nested arrays you need to iterate over those aswell. So we check if our value is an array if so we use an other foreach loop.
<?php
$json = '{"response_code":200,"pnr":"6642876935","train_num":"12792","train_name":"PNBE SC EXP ","doj":" 6- 7-2015","from_station":{"code":"PNBE"},"to_station":{"code":"SC"},"reservation_upto":{"code":"SC"},"boarding_point":{"code":"PNBE"},"class":"SL","no_of_passengers":"1","chart_prepared":"N","passengers":[{"sr":"1","booking_status":"W\/L 43,GNWL","current_status":"RAC 19"}],"noms":1,"error":null}';
$data = json_decode($json, true);
?>
<table>
<tr>
<td>Key</td>
<td>Value</td>
<td>Value</td>
</tr>
<?php foreach($data as $key => $value){
if(is_array($value)){
foreach($value as $element){
if(is_array($element)){
foreach($element as $key2 => $child){?>
<tr>
<td><?php echo $key; ?></td>
<td><?php echo $key2; ?></td>
<td><?php echo $child; ?></td>
</tr>
<?php }
} else { ?>
<tr>
<td><?php echo $key; ?></td>
<td><?php echo $element; ?></td>
<td></td>
</tr>
<?php }
}
} else { ?>
<tr>
<td><?php echo $key; ?></td>
<td><?php echo $value; ?></td>
<td></td>
</tr>
<?php }
} ?>
</table>
Upvotes: 1
Reputation: 1013
<?php
$json = '{"response_code":200,"pnr":"6642876935","train_num":"12792","train_name":"PNBE SC EXP ","doj":" 6- 7-2015","from_station":{"code":"PNBE"},"to_station":{"code":"SC"},"reservation_upto":{"code":"SC"},"boarding_point":{"code":"PNBE"},"class":"SL","no_of_passengers":"1","chart_prepared":"N","passengers":[{"sr":"1","booking_status":"W\/L 43,GNWL","current_status":"RAC 19"}],"noms":1,"error":null}';
$data = json_decode($json, true);
?>
<table>
<tr>
<td>Key</td>
<td>Value</td>
</tr>
<?php foreach($data as $key => $value) : ?>
<tr>
<td><?= $key; ?></td>
<td><?= $value; ?></td>
<?php endforeach; ?>
</table>
Upvotes: 0