How can I parse JSON into a html table using PHP? How can I parse JSON into a html table using PHP? php php

How can I parse JSON into a html table using PHP?


If you want recursive way:

public static function jsonToDebug($jsonText = ''){    $arr = json_decode($jsonText, true);    $html = "";    if ($arr && is_array($arr)) {        $html .= self::_arrayToHtmlTableRecursive($arr);    }    return $html;}private static function _arrayToHtmlTableRecursive($arr) {    $str = "<table><tbody>";    foreach ($arr as $key => $val) {        $str .= "<tr>";        $str .= "<td>$key</td>";        $str .= "<td>";        if (is_array($val)) {            if (!empty($val)) {                $str .= self::_arrayToHtmlTableRecursive($val);            }        } else {            $str .= "<strong>$val</strong>";        }        $str .= "</td></tr>";    }    $str .= "</tbody></table>";    return $str;}

Then call echo YourClass::jsonToDebug($jsonText);

My test on http://sandbox.onlinephpfunctions.com/


Ok first thing to do when getting data from an external source is to understand what is being returned.

So do

<?php$json=file_get_contents("http://west.basketball.nl/db/json/stand.pl?szn_Naam=2014-2015&cmp_ID=373");$data =  json_decode($json);print_r($data);

Result:

stdClass Object(    [stand] => Array        (            [0] => stdClass Object                (                    [afko] => Risne Stars HS 1                    [ID] => 2091                    [status] => Actief                    [gespeeld] => 3                    [percentage] => 100.0                    [punten] => 6                    [tegenscore] => 149                    [eigenscore] => 191                    [datum] => 2014-10-05                    [saldo] => 42                    [team] => Risne Stars Heren 1                    [positie] => 1                )            [1] => stdClass Object                (                    [afko] => D.B.V. Arriba HS 2                    [ID] => 1813                    [status] => Actief                    [gespeeld] => 2                    [percentage] => 0.0                    [punten] => 0                    [tegenscore] => 116                    [eigenscore] => 102                    [datum] => 2014-10-05                    [saldo] => -14                    [team] => D.B.V. Arriba Heren 2                    [positie] => 10                )            [2] => stdClass Object                (                    [afko] => The Valley Bucketeers HS 2                    [ID] => 2430                    [status] => Actief                    [gespeeld] => 2                    [percentage] => 0.0                    [punten] => 0                    [tegenscore] => 177                    [eigenscore] => 70                    [datum] => 2014-10-05                    [saldo] => -107                    [team] => The Valley Bucketeers Heren 2                    [positie] => 11                )            [3] => stdClass Object                (                    [afko] => Uitsmijters HS 2                    [ID] => 2143                    [status] => Actief                    [gespeeld] => 2                    [percentage] => 100.0                    [punten] => 4                    [tegenscore] => 79                    [eigenscore] => 161                    [datum] => 2014-10-05                    [saldo] => 82                    [team] => Uitsmijters Heren 2                    [positie] => 2                )            [4] => stdClass Object                (                    [afko] => Picker Reds HS 1                    [ID] => 2056                    [status] => Actief                    [gespeeld] => 3                    [percentage] => 66.7                    [punten] => 4                    [tegenscore] => 193                    [eigenscore] => 184                    [datum] => 2014-10-05                    [saldo] => -9                    [team] => Picker Reds Heren 1                    [positie] => 3                )            [5] => stdClass Object                (                    [afko] => Peatminers HS 2                    [ID] => 6247                    [status] => Actief                    [gespeeld] => 1                    [percentage] => 100.0                    [punten] => 2                    [tegenscore] => 36                    [eigenscore] => 64                    [datum] => 2014-10-05                    [saldo] => 28                    [team] => Peatminers Heren 2                    [positie] => 4                )            [6] => stdClass Object                (                    [afko] => Jolly Jumpers HS 1                    [ID] => 1994                    [status] => Actief                    [gespeeld] => 2                    [percentage] => 50.0                    [punten] => 2                    [tegenscore] => 103                    [eigenscore] => 119                    [datum] => 2014-10-05                    [saldo] => 16                    [team] => Jolly Jumpers Heren 1                    [positie] => 5                )            [7] => stdClass Object                (                    [afko] => TONEGO '65 HS 2                    [ID] => 2120                    [status] => Actief                    [gespeeld] => 2                    [percentage] => 50.0                    [punten] => 2                    [tegenscore] => 107                    [eigenscore] => 122                    [datum] => 2014-10-05                    [saldo] => 15                    [team] => TONEGO '65 Heren 2                    [positie] => 6                )            [8] => stdClass Object                (                    [afko] => Amical HS 2                    [ID] => 1791                    [status] => Actief                    [gespeeld] => 3                    [percentage] => 33.3                    [punten] => 2                    [tegenscore] => 180                    [eigenscore] => 195                    [datum] => 2014-10-05                    [saldo] => 15                    [team] => Amical Heren 2                    [positie] => 7                )            [9] => stdClass Object                (                    [afko] => S.V.Z.W. HS 2                    [ID] => 5526                    [status] => Actief                    [gespeeld] => 3                    [percentage] => 33.3                    [punten] => 2                    [tegenscore] => 174                    [eigenscore] => 151                    [datum] => 2014-10-05                    [saldo] => -23                    [team] => S.V.Z.W. Heren 2                    [positie] => 8                )            [10] => stdClass Object                (                    [afko] => Twente Buzzards HS 3                    [ID] => 2294                    [status] => Actief                    [gespeeld] => 3                    [percentage] => 33.3                    [punten] => 2                    [tegenscore] => 196                    [eigenscore] => 151                    [datum] => 2014-10-05                    [saldo] => -45                    [team] => Twente Buzzards Heren 3                    [positie] => 9                )        )    [nummer] => OHS2C    [version] => 1.0    [aantal_teams] => 11    [id] => 373    [seizoen] => 2014-2015    [naam] => Oost Afdeling Heren Senioren 2e klasse C    [gewijzigd] => 2014-10-05 18:34:25)

So now you know you are dealing with an OBJECT and not scalar values or an array.

So try this code:-

<?php    $json=file_get_contents("http://west.basketball.nl/db/json/stand.pl?szn_Naam=2014-2015&cmp_ID=373");    $data =  json_decode($json);    if (count($data->stand)) {        // Open the table        echo "<table>";        // Cycle through the array        foreach ($data->stand as $idx => $stand) {            // Output a row            echo "<tr>";            echo "<td>$stand->afko</td>";            echo "<td>$stand->positie</td>";            echo "</tr>";        }        // Close the table        echo "</table>";    }?>


Why not try :

$data = json_decode($json, true);