配列を JSON オブジェクト配列または PHP のオブジェクト配列に変換することは、多くの場合完了する必要があるタスクです。この記事では、サンプル コードを使用してこの機能を実装する方法を説明します。
PHP 配列を JSON オブジェクト配列に変換する
まず、複数の連想配列を含む PHP 配列を定義する必要があります。例は次のとおりです。
$data = array( array( 'name' => 'John', 'age' => 30 ), array( 'name' => 'Mary', 'age' => 25 ), array( 'name' => 'Peter', 'age' => 35 ) );
次に、PHP 組み込み関数 json_encode() を使用して、この PHP 配列を JSON オブジェクト配列に変換します。例は次のとおりです。
$json_data = json_encode($data);
上記のコードでは、PHP 配列 $data を JSON オブジェクト配列 $json_data に変換します。変換結果は次のとおりです。
[ {"name":"John","age":30}, {"name":"Mary","age":25}, {"name":"Peter","age":35} ]
PHP 配列を、JSON オブジェクト配列内のメソッドを含むオブジェクト配列に変換します
場合によっては、PHP 配列を JSON オブジェクトに変換する必要があります。配列。各 An オブジェクトにはプロパティに加えてメソッドが含まれます。この機能を実現するには、PHP で匿名クラスを使用します。例は次のとおりです。
$data = array( new class('John', 30) { public $name; public $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; } public function sayHello() { echo 'Hello, my name is ' . $this->name; } }, new class('Mary', 25) { public $name; public $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; } public function sayHello() { echo 'Hello, my name is ' . $this->name; } }, new class('Peter', 35) { public $name; public $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; } public function sayHello() { echo 'Hello, my name is ' . $this->name; } } );
上記のコードでは、各要素が匿名クラスのインスタンスである PHP 配列 $data を定義します。匿名クラスには、$name プロパティと $age プロパティ、およびsayHello() メソッドが含まれています。次に、json_encode() 関数を使用して、PHP 配列 $data を JSON オブジェクト配列に変換できます。
$json_data = json_encode($data);
変換結果は次のとおりです:
[ {"name":"John","age":30}, {"name":"Mary","age":25}, {"name":"Peter","age":35} ]
sayHello() メソッドは、PHP オブジェクトを JSON オブジェクトに変換するときに属性のみが含まれるため、上記の結果には含まれません。メソッドではありません。
PHP 配列を JSON オブジェクト配列内のメソッドを含むオブジェクトの配列に変換する
場合によっては、PHP 配列を JSON オブジェクトの配列に変換する必要があります。属性にはメソッドも含まれます。この機能を実現するには、クラスの継承を使用できます。例は次のとおりです。
class Person { public $name; public $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; } public function sayHello() { echo 'Hello, my name is ' . $this->name; } } class John extends Person { public function sayHello() { echo 'Hello, my name is ' . $this->name . ' and I am John'; } } class Mary extends Person { public function sayHello() { echo 'Hello, my name is ' . $this->name . ' and I am Mary'; } } class Peter extends Person { public function sayHello() { echo 'Hello, my name is ' . $this->name . ' and I am Peter'; } } $data = array( new John('John', 30), new Mary('Mary', 25), new Peter('Peter', 35) ); $json_data = json_encode($data);
上記のコードでは、クラス person とその 3 つのサブクラス John、Mary、Peter を定義します。これら 3 つのサブクラスはすべて Person クラスから継承し、sayHello() メソッドをオーバーライドします。次に、John、Mary、Peter のインスタンスを含む PHP 配列 $data を定義します。最後に、json_encode() 関数を呼び出して、PHP 配列 $data を JSON オブジェクトの配列に変換します。
変換結果は次のとおりです。
[ {"name":"John","age":30}, {"name":"Mary","age":25}, {"name":"Peter","age":35} ]
前の例と同様、上記の結果にはsayHello()メソッドが含まれていません。 JSON オブジェクト配列にメソッドを含める必要がある場合は、これらのメソッドを属性として変換する必要があります。
概要
この記事では、PHP で配列を JSON オブジェクト配列またはオブジェクト配列に変換する方法について説明し、次のような特殊なケースの例をいくつか示します。メソッド、変換方法。これらの例があなたの仕事や勉強に役立つことを願っています。
以上がPHP配列をJSONオブジェクト配列に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。