Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
To desenvolvendo uma maneira de coletar os dados de uma api que na estrutura possui um objeto, e dentro desse objeto possuem vários outros objetos com arrays multidimensionais.
Para capturar em php os dados desses objetos, estou fazendo foreach dentro de foreach.
Estou conseguindo apresentar o json assim:
{
"count" : 840,
"name" : "vandervort",
"link" : "https://xyz",
}
{
"count" : 834,
"name" : "deja",
"link" : "https://xpto",
},
Porém, preciso imprimir esses dados na tela da seguinte maneira:
[
{
"count" : 840,
"name" : "vandervort",
"link" : "https://xyz.com",
},
{
"count" : 834,
"name" : "deja",
"link" : "https://xpto.com",
},
]
e tenho que ordenar meu foreach para que o resultado apareça primeiro pelo count maior .
alguém pode me ajudar, por favor?
obrigado!
Olá Matheus, obrigado por sua interação.
Me corrija se eu estiver enganado, mas o usort só funciona quando o array já está pronto. No meu caso, eu percorro um array para capturar dados e montar meu json. Para isto estou usando o construtor foreach e neste caso não consigo ordenar o array.
Veja meu código:
foreach($json as $array1) {
$count = $array1->{'count'};
$user[] = $array1->{'user'};
foreach($user as $array2) {
$name = $array2->{'name'};
$link = $array2->{'link'};
}
// Array com dados
$array = array(
'count' => $count,
'name' => $name,
'link' => $link
);
// Mostra os valores
echo '<pre>';
echo json_encode( $array ,JSON_PRETTY_PRINT);
echo '</pre>';
}
Sobre imprimir da seguinte maneira, eu me referi colocar dentro de um array, todo o foreach que gera o json.
Olá!
Pra ordenar você pode seguir essa linha de raciocínio:
<?php
$dados = [// Apenas uma simulação do seu exemplo
(object)[
print_r( $dados );// Agora eles estão invertidos :)
Sobre "imprimir da seguinte maneira"... não entendi exatamente o que você deseja.