Print JSON output to table - PHP
I need to print the output JSON
in a 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,
+3
source to share
2 answers
Since your json has multiple nested arrays, you need to iterate over them as well. Therefore, we check if our value is an array if we use another 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>
+1
source to share
<?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>
0
source to share