简体   繁体   中英

How to get table rows from multiple JSON arrays in PHP?

Using an API I'm getting JSON response in multiple arrays. I need to display the response in HTML table. But as I'm very new to PHP-JSON, I'm unable to figure out a way to do so.

API Call

    $url="https://api.domain.com/getdata.php?format=json&token=2455445444&type=ROWS";

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    curl_setopt($ch, CURLOPT_HTTPGET, true);


    $output = curl_exec($ch);
    curl_close($ch);    
    $json = json_decode($output, true);

    $resCode = $json['resCode'];
    $resText = $json['resText'];

    //Multiple response

    $column1 = $json['data']['ROWS'][0]['column1'];
    $column2 = $json['data']['ROWS'][0]['column2'];
    $column3 = $json['data']['ROWS'][0]['column3'];
    $column4 = $json['data']['ROWS'][0]['column4'];  

JSON Response from API like

{
    "data":{

        "ROWS": [
                    {
                        "column1":"123",
                        "column2":"456",
                        "column3":"789",
                        "column4":"054"
                    },
                    {
                        "column1":"775",
                        "column2":"545",
                        "column3":"647",
                        "column4":"745"
                    },
                    {
                        "column1":"440",
                        "column2":"544",
                        "column3":"745",
                        "column4":"999"
                    }
                ]
        },

    "resCode":"200",
    "resText":"SUCCESS"

}

I need to display the response like below. How do I do that??

HTML

<table border="1" width="50%" align="center">
<tr>
  <th>Column 1</th>
  <th>Column 2</th>
  <th>Column 3</th>
  <th>Column 4</th>
</tr>
<!-- Display the JSON array response here -->
<!-- Example below -->
<tr>
  <td>123</td>
  <td>456</td>
  <td>789</td>
  <td>054</td>
</tr>
<tr>
  <td>775</td>
  <td>545</td>
  <td>647</td>
  <td>745</td>
</tr>
<tr>
  <td>440</td>
  <td>544</td>
  <td>745</td>
  <td>999</td>
</tr>
</table>

Use a foreach to iterate through all rows

echo "<table border="1" width="50%" align="center">";
foreach($json['data']['ROWS'] as $data)
{
echo "<tr>";
foreach($data as $key=>$value)
echo "<td>$value</td>";
echo "</tr>";

}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM