Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Através do json_decote abaixo:
$decode = json_decode($json);
echo ("<pre>");
print_r ($decode);
echo ("</pre>");
Recebo a seguinte estrutura abaixo:
stdClass Object
(
[Data] => Array
(
[0] => stdClass Object
(
[modelo] => stdClass Object
(
[cor] => azul
[tamanho] => 43
)
[1] => stdClass Object
(
[modelo] => stdClass Object
(
[cor] => verde
[tamanho] => 44
)
[2] => stdClass Object
(
[modelo] => stdClass Object
(
[cor] => laranja
[tamanho] => 41
)
)
)
E com o seguinte código abaixo, só me retorna a primeira posição "cor"
$listar = $decode->Data[0]->modelo->cor;
echo"Cor: ".$listar."<br>";
Cor: azul
Se eu retirar o valor [0] do Array Data não me retorna nada.
$listar = $decode->Data->modelo->cor;
echo"Cor: ".$listar."<br>";
Cor:
O que devo fazer para que eu possa receber todas as linhas da lista?
Cor: azul
Cor: verde
Cor: laranja
Não consegui fazer com o código abaixo, me retornando nada:
for($i = 0; $i < count($decode['Data']); $i++) {
echo "<div>Cor: " . $decode[$i]->{'cor'} . "</div>";
echo "<br />";
}>
2 horas atrás, tetsuo disse:
Olá!
Tente assim:
$cores = array_map(function($obj) {
return $obj->modelo->cor;
}, $decode->Data);
echo '<pre>';
print_r($cores);
echo '</pre>';
Muito obrigado tetsuo, retornou certinho.
Coloquei mais um "return" para poder receber o outro campo, "tamanho, porem não tive sucesso.
$cores = array_map(function($obj) {
return $obj->modelo->cor;
return $obj->modelo->tamanho;
}, $decode->Data);
echo '<pre>';
print_r($cores);
echo '</pre>';
e no caso de passar os valores para uma variável, faria assim?
$gravacores = $cores;
$gravatamanho = $tamanho;
Olá!
Tente assim: