<?php
print_r($response->response->docs);
?>
Выводит следующее:
Array
(
[0] => Object
(
[_fields:private] => Array
(
[id]=>9093
[name]=>zahir
)
Object
(
[_fields:private] => Array
(
[id]=>9094
[name]=>hussain
)..
)
)
Как я могу преобразовать этот объект в массив? Я хотел бы вывести следующее:
Array
(
[0]=>
(
[id]=>9093
[name]=>zahir
)
[1]=>
(
[id]=>9094
[name]=>hussain
)...
)
Это возможно?
Вы можете быстро преобразовать глубоко вложенные объекты в ассоциативные массивы, полагаясь на поведение функций кодирования / декодирования JSON:
источник
Осторожный:
выполняет поверхностное преобразование ($ object-> innerObject = new stdClass () остается объектом) и выполняет преобразование назад и вперед с использованием json, но это не очень хорошая идея, если производительность является проблемой.
Если вам нужно, чтобы все объекты были преобразованы в ассоциативные массивы, то это лучший способ сделать это (код, скопированный из я не помню, где):
источник
Я попробовал несколько способов сделать это
foreach
с объектом, и это действительно самый простой и крутой обходной путь, который я когда-либо видел. Всего одна строчка :)источник
Простая версия:
Обновленная рекурсивная версия:
источник
Попробуй это:-
источник
У меня была та же проблема, и я решил ее с помощью get_object_vars, упомянутых выше.
Кроме того, мне пришлось преобразовать мой объект с помощью json_decode, и мне пришлось перебирать массив с циклом oldschool «for» (а не для for-each).
источник
Вы также можете использовать метод array_values () в php
источник
Я столкнулся с проблемой с ответом Энди Эрншоу, потому что я выделил эту функцию в отдельный класс в моем приложении, «HelperFunctions», что означало, что рекурсивный вызов objectToArray () не удался.
Я преодолел это, указав имя класса в вызове array_map следующим образом:
Я бы написал это в комментариях, но у меня пока недостаточно репутации.
источник
источник