ホームページ  >  記事  >  バックエンド開発  >  PHPで複数のJSONを配列に変換する

PHPで複数のJSONを配列に変換する

王林
王林オリジナル
2023-05-11 11:56:36557ブラウズ

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。