PHP 開発では、通常、人が読みやすい形式で概念を表現し、機械の解析にも適した軽量のデータ交換形式である Json 形式 (JavaScript Object Notation) を使用して生成します。実際の開発では、複数のJsonデータをPHP配列に変換する必要がある場面に遭遇することがありますので、今回はその機能の実装方法についてお話します。
1. 単一の Json を配列に変換する
PHP では、json_decode() 関数を使用して、Json 形式のデータを次のような PHP 配列に変換します。 # このうち、第二引数 true は Json データを連想配列に変換することを意味しており、第二引数を付加しない場合はオブジェクトが生成されます。
2. 複数の Json データを配列に変換する
複数の Json データを PHP 配列に変換する必要がある場合は、ループ トラバーサルを使用して Json データを 1 つずつ配列に変換し、それらをマージします。
$json_str = '{"name":"John", "age":30, "city":"New York"}'; $arr = json_decode($json_str, true);
上記のコードでは、まず複数の Json データを含む配列 $json_arr を定義し、次にループ トラバーサルを通じて各 Json データを配列に変換し、最後に変換します。それらを結合して、すべてのデータを含む配列 $data を生成します。
Json データの配列への変換に失敗した場合、データ エラーを避けるために $data 配列にマージされないことに注意してください。
3. array_map() 関数を使用してデータを変換する
ループトラバーサルに加えて、PHP の array_map() 関数を使用して複数の Json データを配列に変換することもできます。
$json_arr = array( '{"name":"John", "age":30, "city":"New York"}', '{"name":"Jane", "age":25, "city":"Los Angeles"}', '{"name":"Tom", "age":40, "city":"Chicago"}' ); $data = array(); foreach($json_arr as $json_str) { $arr = json_decode($json_str, true); // 将Json数据转成数组 if(is_array($arr)) { // 如果转换成功,则将其合并到$data数组中 $data = array_merge($data, $arr); } } print_r($data);
上記のコードでは、Json データを配列に変換する $callback 関数を定義します。次に、これがパラメータとして array_map() 関数に渡され、配列 $json_arr 内の各要素が変換されます。最後に、array_filter() 関数を使用して変換できなかったデータを除外し、すべてのデータを含む配列 $data を取得します。
概要:
上記 2 つの方法により、複数の Json データを PHP 配列に変換する機能を実現できます。実際の開発において、大量の Json データを処理する必要がある場合は、array_map() 関数を使用する方が高速でコードもシンプルであるため、使用することをお勧めします。使用中は、データのエラーを避けるためにデータの検証にも注意を払う必要があります。
以上がPHPで複数のJSONを配列に変換するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。