<?php
print_r($response->response->docs);
?>
Wytwarza następujące:
Array
(
[0] => Object
(
[_fields:private] => Array
(
[id]=>9093
[name]=>zahir
)
Object
(
[_fields:private] => Array
(
[id]=>9094
[name]=>hussain
)..
)
)
Jak przekonwertować ten obiekt na tablicę? Chciałbym wyprowadzić następujące:
Array
(
[0]=>
(
[id]=>9093
[name]=>zahir
)
[1]=>
(
[id]=>9094
[name]=>hussain
)...
)
czy to możliwe?
Możesz szybko przekonwertować głęboko zagnieżdżone obiekty na tablice asocjacyjne, polegając na działaniu funkcji kodowania / dekodowania JSON:
źródło
Ostrożny:
robi płytką konwersję ($ object-> innerObject = new stdClass () pozostaje obiektem) i konwersję tam iz powrotem za pomocą json działa, ale nie jest dobrym pomysłem, jeśli wydajność jest problemem.
Jeśli potrzebujesz przekonwertować wszystkie obiekty na tablice asocjacyjne, oto lepszy sposób na zrobienie tego (kod zgrany z nie pamiętam gdzie):
źródło
Wypróbowałem kilka sposobów zrobienia
foreach
z obiektem i TO jest naprawdę najłatwiejsze i najfajniejsze obejście, jakie widziałem. Tylko jedna linia :)źródło
Prosta wersja:
Zaktualizowana wersja rekurencyjna:
źródło
Spróbuj tego:-
źródło
Miałem ten sam problem i rozwiązałem go za pomocą wyżej wymienionych get_object_vars .
Ponadto musiałem przekonwertować mój obiekt za pomocą json_decode i musiałem iterować tablicę za pomocą starej pętli „for” (zamiast for-each).
źródło
Możesz także użyć metody php typu array_values ()
źródło
Wystąpił problem z odpowiedzią Andy'ego Earnshawa, ponieważ rozdzieliłem tę funkcję na osobną klasę w mojej aplikacji „HelperFunctions”, co oznaczało, że nie powiodło się rekurencyjne wywołanie obiektu objectToArray ().
Rozwiązałem ten problem, podając nazwę klasy w wywołaniu array_map w następujący sposób:
Napisałbym to w komentarzach, ale nie mam jeszcze wystarczającej reputacji.
źródło
źródło