Heim  >  Artikel  >  Backend-Entwicklung  >  Wie konvertiert man ein PHP-stdClass-Objekt effizient in ein Array?

Wie konvertiert man ein PHP-stdClass-Objekt effizient in ein Array?

DDD
DDDOriginal
2024-11-20 12:10:10217Durchsuche

How to Efficiently Convert a PHP stdClass Object to an Array?

Konvertieren einer stdClass in ein Array in PHP

Frage:

Ich muss ein PHP-stdClass-Objekt in ein Array konvertieren . Versuche mit (Array-)Casting, json_decode(true) und json_decode() haben jedoch zu einem leeren Array geführt. Wie kann ich diese Konvertierung effektiv durchführen?

Antwort:

Lazy One-Liner-Methode

Für eine leicht beeinträchtigte Leistung können Sie JSON nutzen Methoden, um diese Konvertierung auf prägnante Weise zu erreichen:

$array = json_decode(json_encode($booking), true);

Diese Methode codiert das Objekt zunächst in einen JSON-String und Dekodiert es dann zurück in ein Array.

Konvertieren von stdClass in ein Array

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

Dieser Ansatz gibt ein indiziertes Array zurück, ohne Eigenschaftsnamen beizubehalten.

Konvertieren von stdClass in ein assoziatives Array

$array = json_decode(json_encode($booking), true);

Indem Sie true als zweites Argument an json_decode übergeben, können Sie das Objekt in ein konvertieren Assoziatives Array, wobei Eigenschaftsnamen erhalten bleiben.

Benutzerdefinierte Funktion (rekursiv)

Wenn die Leistung entscheidend ist, können Sie eine benutzerdefinierte rekursive Funktion implementieren, um das Objekt in ein Array zu konvertieren:

function object_to_array($object) {
  if (is_object($object)) {
    $object = get_object_vars($object);
  }

  if (is_array($object)) {
    return array_map(__FUNCTION__, $object);
  } else {
    return $object;
  }
}

$array = object_to_array($booking);

Das obige ist der detaillierte Inhalt vonWie konvertiert man ein PHP-stdClass-Objekt effizient in ein Array?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn