PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPでJSONLを配列に変換する方法|json_decode関数の使い方を解説

PHPでは、json_decode関数を使うことで、JSONやJSONL形式の文字列を簡単に配列へ変換できます。この記事では、基本的な使い方から実践的なサンプルコードまで、わかりやすく解説します。

json_decode関数の基本構文

JSON文字列を配列に変換するには、以下のようにjson_decode関数を使用します。

json_decode($json_string_that_needs_to_be_converted, true);

第2引数に true を指定すると、結果が連想配列として返されます。false(デフォルト)の場合はオブジェクト形式で返されるため、配列として扱いたい場合は true を指定するのがポイントです。

JSONLを配列に変換するサンプルコード

以下のコードは、JSON形式の文字列を配列に変換する基本的な例です。

$json_string = '["m@gmail.com","p@gmail.com","q@gmail.com"]';
$array_of_data = json_decode($json_string);

シングルクォートで囲んだ場合、内部のダブルクォートをそのまま記述できるため、コードがすっきりと読みやすくなります。

別の書き方:ダブルクォートを使う場合

文字列をダブルクォートで定義する場合は、内部のダブルクォートをバックスラッシュ(\)でエスケープする必要があります。以下のように記述します。

$json_string = "[\"m@gmail.com\",\"p@gmail.com\",\"q@gmail.com\"]";
$array_of_data = json_decode($json_string);

実行結果

上記のコードを実行すると、次のような配列が出力されます。

Array("m@gmail.com","p@gmail.com","q@gmail.com")

複数行のJSONLファイルを扱う場合

実際のJSONLファイルは1行に1つのJSONオブジェクトが格納されていることが多いため、ファイル全体を読み込んで改行ごとに分割して処理すると便利です。

$lines = file('data.jsonl', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$data = [];
foreach ($lines as $line) {
    $data[] = json_decode($line, true);
}

この方法なら、大規模なJSONLデータも効率よく配列化できます。用途に応じてjson_decodeの第2引数を使い分けてみてください。

  1. PHPのdate_parse()関数とは?日付を詳細に解析して連想配列で取得する方法

    PHPのdate_parse()関数は、指定された日付文字列を解析し、その日付に関する詳細な情報を連想配列として返す関数です。年・月・日だけでなく、時・分・秒や小数秒まで取得できるため、日付データの検証や加工に便利な関数です。 構文 date_parse(date) パラメータ date − 解析対象となる日付を表す文字列を指定します。「YYYY-MM-DD HH:MM:SS」のような標準形式のほか、「+2 week」などの相対的な日付表現も指定可能です。 戻り値 date_parse()関数は、指定された日付に関する詳細な情報を格納した連想配列を返します。配列には以下のようなキーが含まれ

  2. PHPのarray()関数とは?配列の作成方法をわかりやすく解説

    PHPのarray()関数は、配列を作成するための関数です。PHPにおける配列には、主に以下の3種類が存在します。インデックス配列 − 数値インデックス(0から始まる番号)で要素を管理する配列連想配列 − 文字列などの名前付きキーで要素を管理する配列多次元配列 − 配列の中に1つ以上の配列を含む、入れ子構造の配列構文// 数値インデックスを持つ配列(インデックス配列) array(value1, value2, ...); // 名前付きキーを持つ配列(連想配列) array(key1 => value1, key2 => value2, ...)パラメータvalue − 配列に