<?php
print_r($response->response->docs);
?>
Emite o seguinte:
Array
(
[0] => Object
(
[_fields:private] => Array
(
[id]=>9093
[name]=>zahir
)
Object
(
[_fields:private] => Array
(
[id]=>9094
[name]=>hussain
)..
)
)
Como posso converter esse objeto em uma matriz? Gostaria de produzir o seguinte:
Array
(
[0]=>
(
[id]=>9093
[name]=>zahir
)
[1]=>
(
[id]=>9094
[name]=>hussain
)...
)
Isso é possível?
É possível converter rapidamente objetos profundamente aninhados em matrizes associativas, contando com o comportamento das funções de codificação / decodificação JSON:
fonte
Cuidado:
faz uma conversão superficial ($ object-> innerObject = new stdClass () permanece um objeto) e converte-se usando o json works, mas não é uma boa ideia se o desempenho é um problema.
Se você precisar que todos os objetos sejam convertidos em matrizes associativas, aqui está uma maneira melhor de fazer isso (o código extraído não me lembro de onde):
fonte
Eu tentei várias maneiras de fazer um
foreach
com um objeto e ESTA é realmente a solução mais fácil e legal que eu já vi. Apenas uma linha :)fonte
Versão simples:
Versão recursiva atualizada:
fonte
Experimente o seguinte: -
fonte
Eu tive o mesmo problema e resolvi-o com get_object_vars mencionado acima.
Além disso, eu tive que converter meu objeto com json_decode e tive que repetir a matriz com o loop "for" da velha escola (e não para cada um).
fonte
Você também pode usar o método array_values () do php
fonte
Encontrei um problema com a resposta de Andy Earnshaw porque havia fatorado essa função em uma classe separada dentro do meu aplicativo, "HelperFunctions", o que significava que a chamada recursiva a objectToArray () falhou.
Eu superei isso especificando o nome da classe na chamada array_map da seguinte forma:
Eu teria escrito isso nos comentários, mas ainda não tenho reputação suficiente.
fonte
fonte