Kauan23 0 Denunciar post Postado Outubro 9, 2014 Galera estou tentando pegar uma informação específica de um array gerado a partir de um xml. No método abaixo a minha dificuldade esta sendo ir entrando dentro dos arrays, eu quero que o método busque no array a informação nome, caso não encontre entre no proximo array e assim sucessivamente, a unica forma que encontrei de entrar no proximo array foi com o foreach. Segue abaixo o código que fiz. do{ foreach ($xmlArray as $xmlArray){ debug($xmlArray['nome']); } } while(array_search('@codsubcat', $xmlArray)); Compartilhar este post Link para o post Compartilhar em outros sites
Vinicius Rangel 208 Denunciar post Postado Outubro 9, 2014 $nome = ''; foreach ($xmlArray as $xmlArray){ if(!empty($xmlArray['nome'])) { $nome = $xmlArray['nome']; break; } } echo 'O primeiro nome encontrado foi:'.$nome; Compartilhar este post Link para o post Compartilhar em outros sites
Kauan23 0 Denunciar post Postado Outubro 9, 2014 $nome = ''; foreach ($xmlArray as $xmlArray){ if(!empty($xmlArray['nome'])) { $nome = $xmlArray['nome']; break; } } echo 'O primeiro nome encontrado foi:'.$nome; Obrigado pela rapidez em responder mas isso não resolve minha situação, estou colocando um link com o array que estou tentando varrer. Estou tentando fazer é o seguinte, um método que entra no primeiro nó do array e procura pela chave @codsubcat, caso encontre imprima o nome, caso contrario entre no próximo nó e procure novamente pela chave @codsubcat e assim sucessivamente ate encontrar. link do array: https://www.dropbox.com/s/s08q3alcahq7wha/array.php?dl=0 Compartilhar este post Link para o post Compartilhar em outros sites
Vinicius Rangel 208 Denunciar post Postado Outubro 10, 2014 O algoritmo é exatamente esse meu caro. Não quer que eu faça tudo tbm, é só você aplicar no seu contexto agora. Compartilhar este post Link para o post Compartilhar em outros sites
Kauan23 0 Denunciar post Postado Outubro 11, 2014 O algoritmo é exatamente esse meu caro. Não quer que eu faça tudo tbm, é só você aplicar no seu contexto agora. Mais uma vez parabéns por sua educação e por sua capacidade de leitura, primeiro se o problema fosse simples ou tivesse muito tempo para solucionar o problema não teria entrado no fórum, segundo se você tivesse lido e entendido meu problema saberia que o que você propôs não era o principal para solucionar meu problema pois já sabia fazer o que você propôs como sua solução. De qualquer para futuros colegas que entrem neste tópico em busca da mesma solução ou ate mesmo para aprimorarem meu código, segue o que criei (não é o melhor mas resolveu minha situação): public function sweep_array ($xmlArray){//RECEBE UM ARRAY SIMPLES OU MULTIDIMENSIONAL if (is_array($xmlArray)){//VERIFICA SE É UM ARRAY, CASO SEJA ENTRA NO FOREACHE foreach ($xmlArray as $xmlArrayStemOrBranch) {//ENTRA UM NÓ NO ARRAY if(!empty($xmlArrayStemOrBranch['@codsubcat'])) {//VERIFICA SE A CHAVE '@codsubcat' EXISTE NESSE NÓ DO ARRAY. debug($xmlArrayStemOrBranch['@codsubcat']." ".$xmlArrayStemOrBranch['nome']);//CASO EXISTA IMPRIME AS INFORMAÇÕES DO MEU INTERESSE }else{ $this->sweep_array($xmlArrayStemOrBranch);//CASO CONTRÁRIO ENTRA MAIS UM NÓ E CONSULTA NOVAMENTE, ISSO ATÉ O FIM DE TODOS OS ARRAYS EXISTENTES. } } } else { $this->Session->setFlash('Formatação do arquivo inválida.');//NÃO É UM ARRAY. } } Compartilhar este post Link para o post Compartilhar em outros sites