PHP ist eine sehr beliebte Programmiersprache, die objektorientierte Programmierung (OOP) und Array-Operationen unterstützt. In PHP müssen wir manchmal ein Array von Objekten in ein normales Array konvertieren. In diesem Artikel wird erläutert, wie Sie in PHP ein Array von Objekten in ein Array konvertieren.
Es gibt eine sehr praktische Funktion in PHP, die JSON-Formatzeichenfolgen in PHP-Arrays konvertieren kann: json_decode.
Objektarrays können in JSON-formatierte Zeichenfolgen codiert werden. Daher können wir das Objektarray zunächst in einen JSON-String codieren und es dann mit der Funktion json_decode in ein PHP-Array konvertieren. Hier ist ein Beispiel:
<?php class Person { public $name; public $age; public $gender; } // 创建对象数组 $persons = []; $person1 = new Person(); $person1->name = "张三"; $person1->age = 20; $person1->gender = "男"; $persons[] = $person1; $person2 = new Person(); $person2->name = "李四"; $person2->age = 22; $person2->gender = "男"; $persons[] = $person2; // 将对象数组编码成JSON字符串 $json_str = json_encode($persons); // 将JSON字符串解码成PHP数组 $person_arr = json_decode($json_str, true); print_r($person_arr); ?>
Dadurch wird das folgende Ergebnis ausgegeben:
Array ( [0] => Array ( [name] => 张三 [age] => 20 [gender] => 男 ) [1] => Array ( [name] => 李四 [age] => 22 [gender] => 男 ) )
Eine weitere Möglichkeit, ein Array von Objekten in ein Array umzuwandeln, besteht darin, die Serializable-Schnittstelle zu implementieren. Diese Methode erfordert eine benutzerdefinierte Methode in der Klasse, um das Objektarray dieser Klasse in eine serialisierbare Zeichenfolge umzuwandeln. Hier ist ein Beispiel:
<?php class Person implements Serializable { public $name; public $age; public $gender; // 实现Serializable接口的方法 public function serialize() { return serialize([$this->name, $this->age, $this->gender]); } // 实现Serializable接口的方法 public function unserialize($serialized) { [$this->name, $this->age, $this->gender] = unserialize($serialized); } } // 创建对象数组 $persons = []; $person1 = new Person(); $person1->name = "张三"; $person1->age = 20; $person1->gender = "男"; $persons[] = $person1; $person2 = new Person(); $person2->name = "李四"; $person2->age = 22; $person2->gender = "男"; $persons[] = $person2; // 将对象数组编码成可序列化的字符串 $serialized_str = serialize($persons); // 将序列化的字符串转换为PHP数组 $person_arr = unserialize($serialized_str); print_r($person_arr); ?>
Dadurch wird das folgende Ergebnis ausgegeben:
Array ( [0] => Person Object ( [name] => 张三 [age] => 20 [gender] => 男 ) [1] => Person Object ( [name] => 李四 [age] => 22 [gender] => 男 ) )
Zusammenfassung
In diesem Artikel werden zwei Möglichkeiten zum Konvertieren eines Arrays von Objekten vorgestellt in ein Array Methode: Verwenden Sie die Funktion json_decode und implementieren Sie die Serializable-Schnittstelle. Entwickler können entsprechend ihren eigenen Anforderungen unterschiedliche Implementierungsmethoden auswählen. Denken Sie daran, dass bei Verwendung der zweiten Methode die Objektklasse die Serializable-Schnittstelle implementieren muss.
Das obige ist der detaillierte Inhalt vonSo konvertieren Sie ein Objektarray in ein Array in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!