Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Mulambo

Ler array dentro de loop while

Recommended Posts

 

Olá amigos!

Estou tentando ler um array dentro de um loop while, porém só consigo obter o primeiro resultado. Alguém pode me ajudar? não consigo saber como mover o ponteiro do array.

eis meu código
$last_xml = simplexml_load_file($user_url); //Carrega o xml em um array
$counter = 0; // Inicia o contador do loop

while($counter != $width*$length && $counter < 37 ){
    $imgurl = $last_xml->topalbums->album[$counter]->image[3]; //OBS: $counter no array
    $counter++; //incrementa contador
} 

Já tentei de tudo, só consigo pegar o resultado do primeiro array, ou seja $last_xml->topalbums->album[0]->image[3];

Será quem alguém sabe o que se passa? att,Dênis Fernandes

Compartilhar este post


Link para o post
Compartilhar em outros sites

As informações do array estão corretas?

 

já tentou usar um var_dump para ver se os dados estão corretos no vetor?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, obrigado pela atenção!

Usando var_dump na variável retorna o seguinte dado:

object(SimpleXMLElement)#6 (1) { ["@attributes"]=> array(1) { ["size"]=> string(10) "extralarge" } }

 

Já do segundo array no loop até o final retorna

NULL

 

Abaixo está o link do xml que estou trabalhando. Basicamente preciso pegar a url das imagens "extralarge" de cada album.

http://ws.audioscrobbler.com/2.0/?method=user.gettopalbums&user=mulambo80s&period=overall&api_key=990bffa4bfec47d7e826740f266d3e75

Att,Dênis Fernandes

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se olhar o seu array, você tem um valor dentro do outro. Por acaso não transformou numa matriz ao invés de um vetor simples?

 

Se não, ao que parece, só tem um valor nesse vetor, por isso não está aparecendo mais nada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigos,

Obrigado pela atenção de todos, o problema foi resolvido.

 

Eu estava tentando utilizar o array como um objeto, então a solução foi transformar o array em objeto logo após puxar os dados do xml. o código fica assim então:

$last_xml = simplexml_load_file($user_url); //Carrega o xml em um array
$last_xmlObj = (object) $last_xml; //SOLUÇÃO Transforma aqui o array em objeto

$counter = 0; // Inicia o contador do loop

while($counter != $width*$length && $counter < 37 ){
    $imgurl = $last_xmlObj->topalbums->album[$counter]->image[3]; //OBS: $counter no array
    $counter++; //incrementa contador
} 

ps: deixo aqui uma dica dessa ferramenta que me ajudou a visualizar melhor meu array :
http://phillihp.com/toolz/php-array-beautifier/

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.