JSONは多次元配列であり、私の意見では、JSONを表示する最も簡単な方法は
var_dump($json_array);
ただし、これは参照しているデータのチャンクである可能性があります。
テーブルは本質的に2次元であり、JSONは多次元である可能性があるため、これはあまりテーブルに適した形式ではありません。
配列をフラット化してから、テーブルとして表示できます。
function flatten_json($json, &$flat, $key) {
// First check the base case: if the arg is not an array,
// then it's data to be inserted in the flat array.
if (!is_array($json)) {
$flat[$key] = $json;
} else {
// It's an array, to reduce the depth of the json,
// we remove this array, by iterating through it,
// sending the elements to be checked if they're also arrays,
// or if they're data to be inserted into the flat array.
foreach ($json as $name => $element) {
flatten_json($element, $flat, $key.'_'.$name);
}
}
}
この関数を使用するには、最初にフラット配列を宣言します。
$flat = array();
次に、jsonと、外部キーにしたいキーを使用して関数に渡します。jsonが配列であることが確実な場合は、キーを空のままにしておくことができます。
flatten_json($json_array, $flat, '');
これで、$ flatにはフラット化されたjsonが含まれるようになり、印刷するjsonの結果が多数ある場合は、テーブルとして、おそらくcsvに印刷できます。
jsonが次の場合:
array(
'person' => array(
'name' => 'timmy',
'age' => '5'
),
'car' => array(
'make' => 'ford',
'engine' => array(
'hp' => 260,
'cyls' => 8
)
)
)
その場合、$flatは次のようになります。
array(
'person_name' => 'timmy',
'person_age' => 5,
'car_make' => 'ford',
'car_engine_hp' => 260,
'car_engine_cyls' => 8
)
素敵なHTMLテーブルに印刷したい場合:
echo "<table><tr>";
foreach ($flat as $header => $value) {
echo "<th>$header</th>;
}
echo "</tr><tr>";
foreach ($flat as $header => $value) {
echo "<td>$value</td>";
}
echo "</tr></table>";