<?php
print_r($response->response->docs);
?>
Génère les éléments suivants:
Array
(
[0] => Object
(
[_fields:private] => Array
(
[id]=>9093
[name]=>zahir
)
Object
(
[_fields:private] => Array
(
[id]=>9094
[name]=>hussain
)..
)
)
Comment puis-je convertir cet objet en un tableau? J'aimerais afficher les éléments suivants:
Array
(
[0]=>
(
[id]=>9093
[name]=>zahir
)
[1]=>
(
[id]=>9094
[name]=>hussain
)...
)
Est-ce possible?
Vous pouvez rapidement convertir des objets profondément imbriqués en tableaux associatifs en s'appuyant sur le comportement des fonctions d'encodage / décodage JSON:
la source
Prudent:
effectue une conversion superficielle ($ object-> innerObject = new stdClass () reste un objet) et la conversion dans les deux sens à l'aide de json fonctionne mais ce n'est pas une bonne idée si les performances sont un problème.
Si vous avez besoin que tous les objets soient convertis en tableaux associatifs, voici une meilleure façon de le faire (code extrait de Je ne me souviens pas où):
la source
J'ai essayé plusieurs façons de faire un
foreach
avec un objet et c'est vraiment la solution la plus simple et la plus cool que j'ai vue. Une seule ligne :)la source
Version simple:
Version récursive mise à jour:
la source
Essaye ça:-
la source
J'ai eu le même problème et je l'ai résolu avec get_object_vars mentionné ci-dessus.
De plus, j'ai dû convertir mon objet avec json_decode et j'ai dû itérer le tableau avec la boucle oldschool "for" (plutôt que for-each).
la source
Vous pouvez également utiliser la méthode array_values () de php
la source
J'ai rencontré un problème avec la réponse d'Andy Earnshaw parce que j'avais factorisé cette fonction dans une classe distincte de mon application, "HelperFunctions", ce qui signifiait que l'appel récursif à objectToArray () avait échoué.
J'ai surmonté cela en spécifiant le nom de classe dans l'appel array_map comme ceci:
J'aurais écrit cela dans les commentaires mais je n'ai pas encore assez de réputation.
la source
la source