In der PHP-Entwicklung bezieht sich Objektarray normalerweise auf eine Sammlung von Objekten, die verschiedene Attribute und Daten enthalten. Diese Objekte können als Klassen definierte Instanzen oder Ergebnismengen sein, die von Datenbankabfrageanweisungen zurückgegeben werden. In einigen Fällen müssen wir diese Objektarrays zur einfacheren Bedienung und Übertragung in normale Arrays konvertieren. In diesem Artikel wird detailliert vorgestellt, wie PHP die Konvertierung von Objektarrays implementiert.
1. Objektarray in PHP
In PHP kann die Implementierung eines Objektarrays variiert werden.
Array-Objekt ist eine als Array definierte Objektvariable. Zwischen diesen Objekten besteht keine Klassenbeziehung. Definieren wir zum Beispiel unten ein Array-Objekt:
$user1 = array( 'id' => 1, 'username' => 'user1', 'email' => 'user1@example.com' ); $user2 = array( 'id' => 2, 'username' => 'user2', 'email' => 'user2@example.com' ); $users = array($user1, $user2);
Im obigen Code definieren wir zwei Array-Objekte $user1 bzw. $user2 und verwenden die Funktion array(), um sie in ein Array $users aufzunehmen.
Klassenobjekte sind Objekte, die eine Klasse definieren. Diese Objekte haben eine Vererbungsbeziehung mit der Klasse und können die Eigenschaften und Methoden der Klasse verwenden. Im Folgenden definieren wir beispielsweise eine Benutzerklasse und erstellen mehrere Objekte dieser Klasse:
class User { public $id; public $username; public $email; public function __construct($id, $username, $email) { $this->id = $id; $this->username = $username; $this->email = $email; } } $user1 = new User(1, 'user1', 'user1@example.com'); $user2 = new User(2, 'user2', 'user2@example.com'); $users = array($user1, $user2);
Im obigen Code definieren wir eine Benutzerklasse und verwenden die Funktion __construct(), um zwei $user1- und $user2-Objekte dieser Klasse zu erstellen und Fügen Sie es mit der Funktion array() in ein Array $users ein.
Das Datenbank-Ergebnismengenobjekt ist das Datenergebnis, das mithilfe einer Abfrageanweisung aus der Datenbank abgerufen wird. Das Ergebnis ist ein Array ähnlicher Objekte. Im Folgenden verwenden wir beispielsweise die mysqli-Methode, um die Datenbank abzufragen und das Ergebnismengenobjekt abzurufen:
$conn = new mysqli($servername, $username, $password, $dbname); $sql = "SELECT * FROM users"; $result = $conn->query($sql); $users = array(); if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { $user = new User($row["id"], $row["username"], $row["email"]); array_push($users, $user); } }
Im obigen Code verwenden wir die mysqli-Methode, um die Datenbank abzufragen und das von ihr zurückgegebene Ergebnismengenobjekt dem $result zuzuweisen Variable, und dann verwenden wir die while-Schleife, um die Abfrageergebnisse in ein Objektarray der Benutzerklasse umzuwandeln.
2. Objektarray in gewöhnliches Array konvertieren
In einigen Fällen müssen wir Objektarray in gewöhnliches Array konvertieren, um den Betrieb und die Übertragung zu erleichtern. PHP verfügt über viele Funktionen zur Implementierung dieses Prozesses. Wir werden sie einzeln vorstellen.
Die Funktion json_encode ist eine mit PHP gelieferte Funktion, die Arrays, Objekte und andere Datentypen in Daten im JSON-Format konvertieren kann. Hier können wir das gewünschte normale Array erhalten, indem wir das Objektarray in Daten im JSON-Format konvertieren und dann die JSON-Daten in ein Array konvertieren. Hier ist ein Beispiel:
$json_users = json_encode($users); //将对象数组转换为JSON格式数据 $users_arr = json_decode($json_users, true); //将JSON格式数据转换为数组
Im obigen Code verwenden wir die Funktion json_encode, um das Objektarray $users in Daten im JSON-Format zu konvertieren und es der Variablen $json_users zuzuweisen. Als nächstes verwenden wir die Funktion json_decode, um die JSON-Formatdaten in der Variablen $json_users in ein assoziatives Array zu konvertieren und es der Variablen $users_arr zuzuweisen. Auf diese Weise enthält die Variable $users_arr die gewöhnliche Array-Form des Objektarrays $users.
Die Foreach-Schleife kann uns dabei helfen, jedes Element im Array zu bearbeiten, und sie kann uns auch dabei helfen, ein Objektarray in ein normales Array zu konvertieren.
$users_arr = array(); foreach($users as $user) { $user_arr = array( 'id' => $user->id, 'username' => $user->username, 'email' => $user->email ); array_push($users_arr, $user_arr); }
Im obigen Code durchlaufen wir jedes Element im Objektarray $users in einer foreach-Schleife, speichern seine Attribute und Daten in einem assoziativen Array $user_arr und verwenden die Funktion array_push, um jedes Array $user_arr zu $ in hinzuzufügen das Array „users_arr“. Letztendlich ist das Array $users_arr ein gewöhnliches Array, das alle Daten im Objektarray $users enthält.
Die Funktion array_map ist eine Funktion, die mit PHP geliefert wird. Sie wendet die angegebene Funktion auf jedes Element des Arrays an und gibt ein neues Array zurück. Hier ist ein Beispiel:
function obj_to_arr($obj) { $result = array(); foreach ($obj as $key => $val) { if (is_object($val)) { $result[$key] = obj_to_arr($val); } else { $result[$key] = $val; } } return $result; } $users_arr = array_map('obj_to_arr', $users);
Im obigen Code definieren wir zunächst eine Funktion obj_to_arr, um das Objekt in ein Array umzuwandeln. Diese Funktion wendet das angegebene Objekt auf jedes Element im Array an und gibt ein neues Array zurück. Schließlich verwenden wir die Funktion array_map, um die Funktion obj_to_arr auf jedes Element im Objektarray $users anzuwenden und das Ergebnis dem Array $users_arr zuzuweisen.
3. Zusammenfassung
In der PHP-Entwicklung ist das Objektarray einer der häufigsten Datentypen, und seine Verarbeitung und Bedienung ist ein unverzichtbarer Bestandteil des Entwicklungsprozesses. In diesem Artikel stellen wir detailliert vor, wie man Objektarrays in PHP definiert, und bieten drei Möglichkeiten, sie in gewöhnliche Arrays umzuwandeln. Die oben genannten Methoden sind sehr einfach und leicht zu verstehen, und ich hoffe, dass sie für PHP-Entwickler hilfreich sein können.
Das obige ist der detaillierte Inhalt vonSo konvertieren Sie ein Objektarray in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!