Sprache:

Suche

Konvertieren eines Arrays in ein Objekt in PHP

  • Teilen:
Konvertieren eines Arrays in ein Objekt in PHP

Einführung

In PHP kommt es manchmal vor, dass man ein Array in ein Objekt umwandeln muss. In diesem kleinen Hack werden wir sehen, wie einfach dies zu bewerkstelligen ist.

Das Array

Nehmen wir an, Sie haben ein Array mit einer Eigenschaft, die ein anderes Array enthält. Klingt kompliziert? Nun, hier haben Sie einfach ein Array innerhalb eines Arrays.

Lesen Sie auch: Wie man PHP-Arrays verwendet

<?php
$array =[
   'items' => ['foo','bar']
];

Die Ausgabe

Wenn Sie das Array ausdrucken, erhalten Sie möglicherweise ein Ergebnis wie

Lesen Sie auch: index.php aus Laravel entfernen

array:1
	 [
  "items
	" => array:2
	 [
    0 => "foo"
    1 => "bar"
  ]
]

In ein Objekt umwandeln

Konvertieren wir also dieses Array in ein Objekt. Hier verwenden wir json_encode & json_decode. JSON ist die JavaScript-Objektnotation und PHP bietet uns die Möglichkeit, JSON zu kodieren und zu dekodieren.

- json_encode: Zur Konvertierung eines Arrays in einen JSON-String.

- json_decode: Für die Konvertierung eines json-Strings in ein Objekt.

Schritt 1 - Enkodierung in einen String

$object = json_encode($array);

var_dump dieses Objekt erhalten Sie etwas wie:

"{"items":["foo","bar"]}"

Diese Informationen können z.B. für die Speicherung in der Datenbank nützlich sein.

Schritt 2 - Dekodierung in ein Objekt

Da wir nun einen json-String haben, können wir json_decode verwenden, um diesen String in ein Objekt zu konvertieren und zu formatieren. Versuchen wir das mal.

$object = json_decode(json_encode($array));

var_dump dieses Objekts liefert Ihnen jetzt

stdClass Object ( [items] => Array ( [0] => foo [1] => bar ) )

Bei json_decode ist zu beachten, dass es einen json-String in ein Objekt umwandelt, es sei denn, Sie geben eine zweite Option an, bei der es sich um einen Boolean handelt, der true oder false sein kann. Wenn Sie den zweiten Parameter auf "true" setzen, erhalten Sie trotzdem ein Array.

Der Anwendungsfall

Nachdem wir unser Array erfolgreich in ein Objekt umgewandelt haben, können wir es verwenden als

foreach ($object->items as $item) {
   echo $item;
}

Probieren Sie diesen kleinen Trick selbst aus und hinterlassen Sie uns unten einen Kommentar, wenn Sie Fragen dazu haben.

Der bessere Weg

Die Verwendung von JSON encode und decode für die Umwandlung von Arrays in Objekte kann eine Menge Ressourcen verbrauchen, wenn das Array größer ist. Der bessere Weg, ein Array in ein Objekt umzuwandeln, ist die Verwendung des Objekt-Typecasts. Zum Beispiel

$object = (object)$array;

Dies liefert auch

stdClass Object ( [items] => Array ( [0] => foo [1] => bar ) )

Es bleibt Ihnen überlassen, welche der beiden Methoden Sie für die Umwandlung eines Arrays in ein Objekt in PHP wählen.

Lesen Sie auch: Beste Quellen zum Erlernen von Laravel

Usama Muneer

Usama Muneer

A web enthusiastic, self-motivated & detail-oriented professional Full-Stack Web Developer from Karachi, Pakistan with experience in developing applications using JavaScript, WordPress & Laravel specifically. Loves to write on different web technologies with an equally useful skill to make some sense out of it.