PHP では、配列とオブジェクトをよく使用します。配列を使用すると関連データのセットを簡単に保存でき、オブジェクトを使用して一部の属性と動作を保存できます。場合によっては、配列をオブジェクトに変換したり、オブジェクトを連想配列に変換したりする必要があります。
この記事では、PHP 関数を使用して配列をオブジェクト配列に変換する方法と、オブジェクトを連想配列に変換する方法を紹介します。
配列をオブジェクト配列に変換する
PHP では、キャストを使用して配列をオブジェクトに変換できます。簡単な例を次に示します。
$arr = ['name' => 'Jack', 'age' => 18]; $obj = (object) $arr;
この例では、連想配列 $arr
を定義し、(object)
を使用してそれを An object # に変換します。 ##$obj。これで、
$obj のプロパティ
$name と
$age を通じて配列内のデータにアクセスできるようになります。複数のサブ配列の場合、各サブ配列を再帰的に処理して、それらすべてをオブジェクトに変換する必要があります。実装する再帰関数は次のとおりです。
echo $obj->name; // Jack echo $obj->age; // 18この関数は、配列をオブジェクトに変換する関数を実装します。まず、受信パラメータが配列であるかどうかを確認し、配列でない場合は直接返し、配列である場合は新しいオブジェクトを作成します。次に、配列内の各要素を小文字のプロパティ名に変換し、
arrayToObject
関数を再帰的に呼び出します。最後に変換されたオブジェクトを返します。次は使用例です:
function arrayToObject($array) { if (!is_array($array)) { return $array; } $object = new stdClass(); if (is_array($array) && count($array) > 0) { foreach ($array as $name => $value) { $name = strtolower(trim($name)); if (!empty($name)) { $object->$name = arrayToObject($value); } } return $object; } else { return FALSE; } }この例では、サブ配列
address
を含む多次元配列$data を定義します。 。次に、
arrayToObject 関数を使用してオブジェクトに変換し、最後に
$obj のプロパティを通じてデータにアクセスします。
オブジェクトを連想配列に変換する
get_object_vars
メソッドを使用して、オブジェクトを次のように変換できます。配列。以下に例を示します。$data = [ 'name' => 'Jack', 'age' => 18, 'address' => [ 'state' => 'CA', 'city' => 'San Francisco' ] ]; $obj = arrayToObject($data); echo $obj->name; // Jack echo $obj->address->state; // CA
この例では、
name、age、および 3 つの属性を含む
Person クラスを定義します。 ###住所###。次に、
$person オブジェクトが作成され、
get_object_vars を使用して配列
$arr に変換されます。最後に
print_r を使用して配列を出力します。
出力結果は次のとおりです:
class Person { public $name; public $age; public $address; public function __construct($name, $age, $address) { $this->name = $name; $this->age = $age; $this->address = $address; } } $person = new Person('Jack', 18, 'San Francisco'); $arr = get_object_vars($person); print_r($arr);
結論
PHP では、強制型変換によって配列をオブジェクトに変換することも、を使用することもできます。 get_object_vars
メソッドはオブジェクトを連想配列に変換します。多次元配列とオブジェクトの場合、変換を実現するには再帰的処理が必要です。これらの手法を理解すると、PHP で配列やオブジェクトをより適切に処理できるようになります。以上がPHPは配列をオブジェクト配列オブジェクトに変換しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。