Konvertieren Sie ein PHP-Objekt in ein assoziatives Array

Subodh Poudel 30 Januar 2023
  1. Verwenden Sie das Schlüsselwort array, um das Objekt der StdClass in ein assoziatives Array in PHP umzuwandeln
  2. Verwenden Sie das Objekt der StdClass innerhalb einer benutzerdefinierten Klasse, um das Objekt in ein assoziatives Array in PHP umzuwandeln
  3. Verwenden Sie die Funktionen json_encode() und json_decode(), um das Objekt in ein assoziatives Array in PHP umzuwandeln
Konvertieren Sie ein PHP-Objekt in ein assoziatives Array

Wir werden eine Methode vorstellen, um das PHP-Objekt in ein assoziatives Array zu konvertieren, indem wir die Objekte von StdClass mit dem Schlüsselwort array typisieren. Wir verwenden die Funktion var_dump(), um das assoziative Array anzuzeigen.

Der zweite Ansatz demonstriert eine andere Methode, um das PHP-Objekt in ein assoziatives Array zu konvertieren, indem im Konstruktor einer benutzerdefinierten Klasse eine StdClass erstellt wird. Wir werden das Objekt wie in der ersten Methode mit dem Schlüsselwort array in das assoziative Array umwandeln. Diese Methode folgt dem objektorientierten Ansatz.

Wir werden auch eine andere Methode vorstellen, um das Objekt in PHP mit den Funktionen json_encode() und json_decode() in ein assoziatives Array umzuwandeln. Wir verwenden die StdClass, um das Objekt und die dynamischen Eigenschaften zu erstellen.

Verwenden Sie das Schlüsselwort array, um das Objekt der StdClass in ein assoziatives Array in PHP umzuwandeln

Wir können die leere Klasse StdClass erstellen, um ein Objekt in PHP zu erstellen und das Objekt zum Erstellen von Eigenschaften verwenden. Das Objekt der Klasse kann direkt auf die Eigenschaften zugreifen. Es kann auch dynamische Eigenschaften für die Klasse erstellen. Wir können das Objekt array verwenden, um das Objekt in ein Array umzuwandeln. Die Funktion var_dump() gibt die Informationen über den Typ und die Werte des Arrays aus.

Erstellen Sie beispielsweise ein Objekt $object der StdClass mit dem Operator new. Erstellen Sie zwei Eigenschaften mit dem $object namens car1 und car2. Weisen Sie den Eigenschaften die Werte porsche und bugatti zu. Verwenden Sie das Schlüsselwort array, um die Variable $object zu typisieren. Setzen Sie das Schlüsselwort array in Klammern vor die Variable $object und geben Sie den Wert mit der Funktion var_dump() aus. Das folgende Beispiel wandelt die Objekte in ein assoziatives Array um, wie im Ausgabeabschnitt gezeigt. Es zeigt die Schlüssel- und Wertpaare für jedes Element des Arrays.

Beispielcode:

#php 7.x 
<?php
$object = new StdClass;
$object->car1 = "porsche";
$object->car2 = "bugatti";
var_dump( (array) $object );
?>

Ausgabe:

array(2) { ["car1"]=> string(7) "porsche" ["car2"]=> string(7) "bugatti" }

Verwenden Sie das Objekt der StdClass innerhalb einer benutzerdefinierten Klasse, um das Objekt in ein assoziatives Array in PHP umzuwandeln

Wir können eine Instanz der StdClass im Konstruktor der Klasse erstellen und das Schlüsselwort array verwenden, um das Objekt der Klasse in ein assoziatives Array umzuwandeln. Wir können eine Klasse erstellen und einige Eigenschaften davon definieren. Der Konstruktor der Klasse initialisiert die Eigenschaften der Klasse mit bestimmten Werten. Wir können ein Objekt der StdClass erstellen und ihm eine der Eigenschaften der Klasse zuweisen. Der Operator new ruft zusammen mit der Klasse den Konstruktor auf. Wir können das Schlüsselwort array direkt vor dem Aufruf verwenden, um das Objekt der Klasse in ein assoziatives Array umzuwandeln.

Erstellen Sie beispielsweise eine Klasse Motorrad. Erstellen Sie drei Klasseneigenschaften mit dem Zugriffsmodifizierer private als $name, $color und $type. Erstellen Sie einen Konstruktor der Klasse und initialisieren Sie innerhalb des Konstruktors die Werte der Eigenschaften. Schreiben Sie Husky für $name, Weiss für $color und erstellen Sie ein Objekt der StdClass für Typ. Verwenden Sie das Schlüsselwort $this, um die Eigenschaften zu initialisieren. Rufen Sie außerhalb der Klasse die Klasse Motorrad auf und verwenden Sie das Schlüsselwort array zur Typumwandlung vor dem Aufruf. Verwenden Sie die Funktion var_dump(), um die Informationen über das typgewandelte Array auszugeben.

Beispielcode:

#php 7.x 
class Motorcycle{
    private $name;
    private $color;
    private $type;
    public function __construct(){
        $this->name = "Husky";
        $this->color = "white";
        $this->type = new StdClass;
    }
}
var_dump( (array) new Motorcycle );

Ausgabe:

array(3) { ["Motorcyclename"]=> string(5) "Husky" ["Motorcyclecolor"]=> string(5) "white" ["Motorcycletype"]=> object(stdClass)#2 (0) { } }

Verwenden Sie die Funktionen json_encode() und json_decode(), um das Objekt in ein assoziatives Array in PHP umzuwandeln

Die Funktion json_encode() kodiert einen Wert in das JSON-Objekt und die Funktion json_decode() wandelt das JSON-Objekt in das PHP-Objekt um. Der boolesche Wert, der zweite Parameter der Funktion json_decode(), gibt an, was das JSON-Objekt konvertiert werden soll. Der Wert true wandelt das JSON-Objekt in ein assoziatives Array um, während der Wert false es in ein PHP-Objekt umwandelt.

Erstellen Sie beispielsweise ein Objekt der StdClass und weisen Sie es der Variablen $object zu. Nennen Sie zwei Werte der Objekteigenschaft als Mustang und Manang und speichern Sie diese in den Variablen place1 und place2. Verwenden Sie die Funktion json_encode() auf die Variable $object und speichern Sie den Wert in der Variablen $json. Verwenden Sie dann die Funktion json_decode() auf die Variable $json und verwenden Sie als zweiten Parameter den booleschen Wert true. Speichern Sie den Wert in der Variablen $array. Dump der Variable mit der Funktion var_dump().

Im folgenden Beispiel enthält die Variable $object das StdClass-Objekt. Die Funktion json_ecode() konvertiert das Objekt in den JSON-String. Die Funktion json_decode() wandelt den JSON-String in das assoziative Array um.

Beispielcode:

#php 7.x 
<?php
$object = new StdClass;
$object->place1 = "Mustang";
$object->place2 = "Manang";
$json= json_encode($object);
$array = json_decode($json, true);
var_dump($array);
?>

Ausgabe:

array(2) { ["place1"]=> string(7) "Mustang" ["place2"]=> string(6) "Manang" }
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn

Verwandter Artikel - PHP Object