PHP では、配列は一般的なデータ構造の 1 つです。現在、データ交換とフロントエンドとバックエンドの分離の人気が高まっているため、JSON データ形式は広く使用されていると言えます。では、PHP の配列を JSON オブジェクトに変換するにはどうすればよいでしょうか?この記事ではその答えを紹介します。
1. PHP 組み込み関数 json_encode() を使用する
PHP には、PHP 配列を JSON オブジェクトに変換するための組み込み関数 json_encode() が用意されています。 json_encode() 関数は、PHP 変数をパラメーターとして受け取り、その変数を JSON 形式の文字列にエンコードします。以下は、json_encode() 関数を使用して PHP 配列を JSON オブジェクトに変換する例です。
$my_array = [1, 2, 'hello', 'world']; $json_string = json_encode($my_array); echo $json_string;
上記のコードの出力結果は次のとおりです:
[1,2,"hello","world"]
json_encode() 関数の 2 番目のオプション パラメータ $option のデフォルトは 0 であることに注意してください。出力結果にインデントはありません。このパラメータを JSON_PRETTY_PRINT に設定すると、結果が読みやすくなります。
2. PHP 組み込み関数 json_decode() を使用する
json_encode() 関数に対応して、PHP には、JSON 形式の文字列を PHP 配列に変換するための json_decode() 関数も提供されています。これは、 json_decode() 関数を使用して JSON オブジェクトを PHP 配列に変換する例です。
$json_string = '[1,2,"hello","world"]'; $my_array = json_decode($json_string); var_dump($my_array);
出力結果は次のとおりです:
array(4) { [0]=> int(1) [1]=> int(2) [2]=> string(5) "hello" [3]=> string(5) "world" }
json_decode() 関数はデフォルトで JSON 文字列を stdClass オブジェクトに変換することに注意してください。これを PHP 配列に変換する場合は、次のように json_decode() 関数の 2 番目のパラメーターを true に設定します。
$json_string = '{"name": "Tom", "age": 18}'; $my_array = json_decode($json_string, true); var_dump($my_array);
出力結果は次のようになります:
array(2) { ["name"]=> string(3) "Tom" ["age"]=> int(18) }
3 。 PHP クラス ライブラリを使用する
JSON データに対してより高度な編集操作を実行する場合は、pecl-json や jsonlint などの PHP の JSON クラス ライブラリを使用できます。これらのライブラリは、 json_encode() および json_decode() 関数よりも多くのオプションと機能を提供します。
たとえば、pecl-json クラス ライブラリを使用すると、PHP 配列を JSON オブジェクトに簡単に変換できます:
use \JsonSerializable; class MyArray implements JsonSerializable { private $arr; public function __construct($arr = []) { $this->arr = $arr; } public function jsonSerialize() { return $this->arr; } } $my_array = new MyArray([1, 2, 'hello', 'world']); $json_string = json_encode($my_array); echo $json_string;
出力結果は次のとおりです:
[1,2,"hello","world"]
PHP オブジェクトを JSON オブジェクトに変換する場合、PHP オブジェクトは JsonSerializable インターフェイスを実装する必要があることに注意してください。 JsonSerializable インターフェイスを実装した後、 json_encode() 関数はインターフェイス メソッド jsonSerialize() を呼び出して、PHP オブジェクトを JSON オブジェクトに変換します。
結論
この記事では、PHP で配列を JSON オブジェクトに変換する方法について説明します。 PHP の組み込み関数 json_encode() および json_decode() を使用すると、基本的なデータ形式を簡単に変換できます。より高度な JSON データ編集操作を実行する必要がある場合は、PHP の JSON クラス ライブラリを使用できます。もう一度例を見てみましょう。他のクラス ライブラリを使用せずに、次のように配列を JSON に変換できます:
$my_array = [1, 2, 'hello', 'world']; $json_string = json_encode($my_array); $result_array = json_decode($json_string, true);
とてもシンプルでとても便利です。
以上がPHP配列をJSONオブジェクトに変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。