<?php
print_r($response->response->docs);
?>
Produce lo siguiente:
Array
(
[0] => Object
(
[_fields:private] => Array
(
[id]=>9093
[name]=>zahir
)
Object
(
[_fields:private] => Array
(
[id]=>9094
[name]=>hussain
)..
)
)
¿Cómo puedo convertir este objeto en una matriz? Me gustaría mostrar lo siguiente:
Array
(
[0]=>
(
[id]=>9093
[name]=>zahir
)
[1]=>
(
[id]=>9094
[name]=>hussain
)...
)
es posible?
Puede convertir rápidamente objetos profundamente anidados en matrices asociativas confiando en el comportamiento de las funciones de codificación / decodificación JSON:
fuente
Cuidado:
realiza una conversión superficial ($ object-> innerObject = new stdClass () sigue siendo un objeto) y la conversión de ida y vuelta con json funciona, pero no es una buena idea si el rendimiento es un problema.
Si necesita que todos los objetos se conviertan en matrices asociativas, aquí hay una mejor manera de hacerlo (código extraído de no recuerdo dónde):
fuente
Intenté varias formas de hacer
foreach
un objeto y ESTA es realmente la solución más fácil y genial que he visto. Solo una línea :)fuente
Versión simple:
Versión recursiva actualizada:
fuente
Prueba esto:-
fuente
Tuve el mismo problema y lo resolví con get_object_vars mencionados anteriormente.
Además, tuve que convertir mi objeto con json_decode y tuve que iterar la matriz con el ciclo "for" de la vieja escuela (en lugar de para cada uno).
fuente
También puede usar el método array_values () de php
fuente
Me encontré con un problema con la respuesta de Andy Earnshaw porque había factorizado esta función en una clase separada dentro de mi aplicación, "HelperFunctions", lo que significaba que la llamada recursiva a objectToArray () había fallado.
Lo superé especificando el nombre de la clase dentro de la llamada array_map así:
Hubiera escrito esto en los comentarios, pero todavía no tengo suficiente reputación.
fuente
fuente