<?php
print_r($response->response->docs);
?>
Gibt Folgendes aus:
Array
(
[0] => Object
(
[_fields:private] => Array
(
[id]=>9093
[name]=>zahir
)
Object
(
[_fields:private] => Array
(
[id]=>9094
[name]=>hussain
)..
)
)
Wie kann ich dieses Objekt in ein Array konvertieren? Ich möchte Folgendes ausgeben:
Array
(
[0]=>
(
[id]=>9093
[name]=>zahir
)
[1]=>
(
[id]=>9094
[name]=>hussain
)...
)
Ist das möglich?
Sie können tief verschachtelte Objekte schnell in assoziative Arrays konvertieren, indem Sie sich auf das Verhalten der JSON-Codierungs- / Decodierungsfunktionen verlassen:
quelle
Vorsichtig:
führt eine flache Konvertierung durch ($ object-> innerObject = new stdClass () bleibt ein Objekt) und konvertiert mit json hin und her, aber es ist keine gute Idee, wenn die Leistung ein Problem darstellt.
Wenn Sie alle Objekte in assoziative Arrays konvertieren müssen, ist dies eine bessere Möglichkeit (Code, der aus dem Speicher kopiert wurde, an den ich mich nicht erinnere, wo):
quelle
Ich habe verschiedene Möglichkeiten ausprobiert, um
foreach
ein Objekt zu erstellen, und DAS ist wirklich die einfachste und coolste Problemumgehung, die ich je gesehen habe. Nur eine Zeile :)quelle
Einfache Version:
Aktualisierte rekursive Version:
quelle
Versuche dies:-
quelle
Ich hatte das gleiche Problem und löste es mit den oben genannten get_object_vars .
Außerdem musste ich mein Objekt mit json_decode konvertieren und das Array mit der "for" -Schleife der alten Schule (und nicht für jede) iterieren.
quelle
Sie können auch die array_values () -Methode von php verwenden
quelle
Ich bin auf ein Problem mit der Antwort von Andy Earnshaw gestoßen, weil ich diese Funktion in einer separaten Klasse in meiner Anwendung "HelperFunctions" herausgerechnet hatte, was bedeutete, dass der rekursive Aufruf von objectToArray () fehlgeschlagen war.
Ich habe dies überwunden, indem ich den Klassennamen im Aufruf array_map wie folgt angegeben habe:
Ich hätte das in den Kommentaren geschrieben, aber ich habe noch nicht genug Ruf.
quelle
quelle