PHPのforeachループでJSON配列を解析する方法
PHPでは、json_decode関数を使ってJSON形式の文字列を配列に変換し、foreachループで各要素にアクセスすることで、JSONデータを簡単に解析できます。以下に、JSONオブジェクトを連想配列として受け取り、foreachで値を取り出す基本的なコード例を示します。
サンプルコード
<?php
$json_array ='{
"values": {
"a": "abc",
"d": 0,
"efg": 349
}
}';
$array = json_decode($json_array, true);
foreach($array as $values) {
echo $values['efg'];
echo $values['d'];
echo $values['a'];
}コードの解説
json_decode関数の第2引数にtrueを指定すると、JSONオブジェクトが連想配列に変換されます。省略した場合(デフォルトはfalse)は、stdClassオブジェクトとして返されるため、$values->efgのようにアロー演算子でアクセスすることになります。
この例では連想配列としてデコードしているため、foreachで「values」キーの内容を取得し、さらにキー名(a、d、efg)を指定してそれぞれの値を出力しています。
出力結果
上記のコードを実行すると、次のような出力が得られます。
3490abc
エラー処理のポイント
JSON文字列が不正な場合、json_decodeはnullを返します。本番環境では、json_last_error()やjson_last_error_msg()を使ってデコードの成否を確認し、エラー時に適切な処理を行うことが推奨されます。
-
PHPのtimezone_transitions_get()関数とは?使い方とサンプルコードを解説
PHPのtimezone_transitions_get()関数は、指定したタイムゾーンにおけるすべての遷移(トランジション)情報を取得するための関数です。サマータイム(DST)への切り替えやUTCオフセットの変更履歴など、タイムゾーンに関する詳細なデータを配列として受け取ることができます。なお、この関数はPHP 5.3以降で利用可能であり、オブジェクト指向の書き方では DateTimeZone::getTransitions() メソッドに相当します。構文timezone_transitions_get(obj)パラメータobj − 遷移情報を取得したいタイムゾーンを表すDateTimeZo
-
PHPのarray()関数とは?配列の作成方法をわかりやすく解説
PHPのarray()関数は、配列を作成するための関数です。PHPにおける配列には、主に以下の3種類が存在します。インデックス配列 − 数値インデックス(0から始まる番号)で要素を管理する配列連想配列 − 文字列などの名前付きキーで要素を管理する配列多次元配列 − 配列の中に1つ以上の配列を含む、入れ子構造の配列構文// 数値インデックスを持つ配列(インデックス配列) array(value1, value2, ...); // 名前付きキーを持つ配列(連想配列) array(key1 => value1, key2 => value2, ...)パラメータvalue − 配列に