Jump to content
netASP

Como ler esse os valores deste array?

Recommended Posts

Boa Tarde, fiz uma conexão com um web service e obtive um retorno em array, quero ajuda para pegar cada valor.

 

 

SimpleXMLElement Object
(
    [ArrayOfClienteDetalhe] => SimpleXMLElement Object
        (
            [ClienteDetalhe] => Array
                (
                    [0] => SimpleXMLElement Object
                        (
                            [IdCliente] => 10
                            [Sequencial] => 6055
                            [IdDetalhe] => 61
                            [NomeDetalhe] => T77ER C7 
                            [TipoDetalhe] => Cliente
                            [TipoFormato] => Inteiro
                            [TipoInclusao] => Sim
                            [TipoConsulta] => Sim
                            [TipoExclusao] => Nao
                            [TipoAlteracao] => Nao
                            [TipoValor] => ValorUnico
                            [Valor] => 2
                            [TpMensagem] => Nenhum
                        )
                    [1] => SimpleXMLElement Object
                        (
                            [IdCliente] => 10
                            [Sequencial] => 10
                            [IdDetalhe] => 1
                            [NomeDetalhe] => ID CLIENTE
                            [TipoDetalhe] => Cliente
                            [TipoFormato] => Texto
                            [TipoInclusao] => Sim
                            [TipoConsulta] => Sim
                            [TipoExclusao] => Nao
                            [TipoAlteracao] => Nao
                            [TipoValor] => ValorUnico
                            [Valor] => 00039523777706
                            [TpMensagem] => Nenhum
                        )
                    [2] => SimpleXMLElement Object
                        (
                            [IdCliente] => 10
                            [Sequencial] => 6054
                            [IdDetalhe] => 33
                            [NomeDetalhe] => NA_NATIONALITY
                            [TipoDetalhe] => Cliente
                            [TipoFormato] => Texto
                            [TipoInclusao] => Sim
                            [TipoConsulta] => Sim
                            [TipoExclusao] => Nao
                            [TipoAlteracao] => Nao
                            [TipoValor] => ValorUnico
                            [Valor] => BRA
                            [TpMensagem] => Nenhum
                        )
                    [3] => SimpleXMLElement Object
                        (
                            [IdCliente] => 10
                            [Sequencial] => 15552076
                            [IdDetalhe] => 8555
                            [NomeDetalhe] => NOV
                            [TipoDetalhe] => Cliente
                            [TipoFormato] => Texto
                            [TipoInclusao] => Sim
                            [TipoConsulta] => Sim
                            [TipoExclusao] => Nao
                            [TipoAlteracao] => Nao
                            [TipoValor] => ValorUnico
                            [Valor] => 2016117711
                            [TpMensagem] => Nenhum
                        )
                )
        )

 

Share this post


Link to post
Share on other sites

já tentou usar os nomes retornados:

 

echo $retorno['nome_nivel_0']['nome_nivel_1']['nome_nivel_2']['nome_nivel_3'];

 

ou com os índices...

 

echo $retorno[0][0][0][0];
echo $retorno[0][0][1][0];

 

Share this post


Link to post
Share on other sites

Sim tentei e não consegui,

Veja como estou tratando o retorno;

 

$resultAux = html_entity_decode($result);
$xmlobj = simplexml_load_string($resultAux) or die("Error: Cannot create object");
		if($xmlobj === false){
			echo "Failed loading XML: ";
			foreach(libxml_get_errors() as $error) {
				echo "<br>", $error->message;
			}
		}else{
			print_r($xmlobj);
		}
$xmlobj['ArrayOfClienteDetalhe']['ClienteDetalhe']['IdCliente'];

Mais não funcionou.

 

 

Share this post


Link to post
Share on other sites

observe que entre os nós ['ClienteDetalhe'] e o da array do ['IdCliente'] tem mais nós, tenta usando índices até chegar a  imprimir o nome do cliente pra ver onde tá ele nos nós tipo

 

echo $xmlobj[0][0][0];
echo $xmlobj[0][0][0][0];
echo $xmlobj[0][0][0][0][0];

 

Share this post


Link to post
Share on other sites

já tentou usar var_dump($nome_da_array) e print_r($nome_da_array) pra ver o retorno que dá? talvez a diferença entre as formas que os dois métodos traz pode te ajudar a decifrar.

Share this post


Link to post
Share on other sites

Consegui!
Obrigado !

foreach($xmlobj->ArrayOfClienteDetais as $vals )
        { 
            unset($geonames);
            $vals=(array)$vals;
            foreach($vals as $key => $value)
              {
                $value=(array)$value;    
                $geonames[$key]=$value[0];
                
                
              }
             
        }

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Cesar Melo
      Olá. Gostaria de uma opinião sobre onde focar meus estudos para trabalhar com PHP.
      Atualmente tenho conhecimentos com a linguagem PHP, e os seguintes frameworks: Bootstrap e Jquery.
      Recentemente fiz um curso de Laravel+materialize e gostei muito desse framework. Meu primeiro contato com framework para backend e pretendo utilizar o Laravel daqui pra frente nos meus estudos.
       
      Minha questão é a seguinte, quero dar continuidade aos meus estudos para me qualificar para o mercado de trabalho, mas não sei exatamente os próximos cursos que vou estudar.
      Não sei se atualmente há uma combinação de frameworks mais utilizada ou requisitada no mercado de trabalho. Ex: Laravel+vue+bootstrap, ou laravel+angularjs+materialize, tipo isso.
       
      Dei uma pesquisada no google e youtube, e notei que não há muito conteúdo de cursos por exemplo de Laravel+angularjs.
      Procurando algumas vagas de emprego, notei que há grande procurar para profissionais com qualificação em Laravel, e tambem grande procura para profissionais com qualificação em AngularJs, porém vagas distintas. Acho que não vi nenhuma vaga que peça Laravel+AngularJs.
       
      Alguém aí pode me passar uma visão ou dar sua opinião sobre isso, para eu focar meus estudos? Alguém sabe o que andam usando bastante? Ou que seja indicado de trabalhar em conjunto com PHP?
       
      Ah, uma observação... atualmente meu foco são de projetos voltados para sistemas, admin, etc. Não tenho muito perfil para projetos de marketing ou que exijam um frontend "lindo". rsrs.
       
      Grato...
    • By Gemenson Miranda
      Oi pessoal, estou com um problema na minha hospedagem LInux do Godaddy, publiquei meu site, fiz o apontamento correto do banco de dados, mas quando acesso a URL o site me exibe HTTP ERROR 500 exibe realizei a configuração do arquivo .htaccess, alterei as permissões para (755), nada disso resolve... A questão e que sempre que comento as informações de apontamento do banco de dados no arquivo index.php o site carrega normalmente, porem sem conexão com o bando mysql, o que me faz pensar que o erro pode esta relacionado ao banco mysql, porem não consigo visualizar o erro por que a tela fica toda branca e não retorna nada, como resolver esse erro ou ao menos exibir qual erro causa ele?? agradeço!
    • By mpcarvalho
      Possuo pouco conhecimento em JS, então gostaria de solicitar uma ajuda com um script que montei para resgatar imagens de produtos de um determinado site/ecommerce utilizando o EAN do produto.
       
      No código abaixo eu passo via form alguns parametros como a URL do site onde quero pesquisar a imagem com "/" e na sequência o campo EAN com todos os códigos de barra que quero pesquisar separados por "," e por ultimo a extensão do arquivo de acordo com a extensão que o site em questão utiliza, jpg ou png. No final tudo será exibido na div dl_imgs e ai então eu posso dar um ctrl + s no meu navegador e salvar todas as imagens de uma vez. 
       
      O objetivo do FOR é retornar imagem por imagem utilizando os parametros URL + EAN + EXT. Ex: "ecommerce.com.br/imagens/000030201.png".
       
      O que acontece é que preencho o campo EAN com todos os códigos de barras que preciso separados por virgula, mas o script não consegue montar o array e me retorna algo parecido com isso: https://cdn-*******.*******.com.br/products/7896003703863,7897005100223,7897005101589,7896360210097,7896003703863,7897005100223,7897005101589
       
      Como podem ver me trás apenas uma imagem que não existe pois não separou os códigos de barra na matriz. Porem se eu copiar esses mesmos códigos e colocar direto na VAR MATRIZ, o script funciona. 
       
      Segue abaixo o script utilizado. Desde já agradeço!
       
      <script>
              function loadImgs(){
                /*--- Dados do formulário ---*/
                var dataform = document.forms[0] || document.forms['dados'];
                //var t = dataform.imgtotal.value;
                var url = dataform.url.value;
                var ext = dataform.ext.value;
                var ean = dataform.ean.value;
                dataform.buscar.disabled = true;
                  
                /*--- Gerar IMGS ---*/
                var div = document.getElementById('dl_imgs') || document.dl_imgs;
                div.innerHTML = "";

                novoArray = ean.split(',');
                var matriz = [novoArray];
                  
               for(var i=0; i<matriz.length; i++) {
                     div.innerHTML += '<img src="'+url+""+matriz+''+ext+'" />';
               }
      }
      </script>
       
      PS: Para melhorar ainda mais essa extração, eu gostaria de fazer isso fazendo um UPLOAD de um arquivo XLS contendo 2 colunas EAN e Nome produto, e no final exibir a imagem e abaixo o nome do produto, se alguém puder me dar uma luz de como fazer isso agradeço. Att;
    • By TheRonaldoStar
      Oii, fala ae pessoal!!
      Alguém pode me ajudar com uma coisa por favor?;
      Seguinte!, eu anteriormente fiz uma pergunta aqui no fórum recorrente a isso, mas eu conseguir uma solução parcial.
      Que era, fazer uma listagem de todos os cadastros e fazer a junção dos cadastros com uma coluna igual, Ou seja existem duas colunas [DE e Para], que recebem o id de quem está recebendo ou que está enviando a mensagem, eu conseguir fazer a tal listagem por grupo mas o problema que estou tendo é: que so faz o agrupamento de as colunas contiver o id por ex: [De = "1" e Para ="2"].
      Atualmente estou usando a codificação deste Jeito:
       
      $sql_2 = $db -> prepare("SELECT * FROM privado WHERE (Para = '$Meu_id') Or (De = '$Meu_id') GROUP BY Para, De DESC"); $sql_2 -> execute(); Esta consulta como pode ver ele busca todos os cadastros que tenha o meu ID ou seja do usuário online!, Após a consulta ele vei obter em um "while" somente o [ Id_De eo Id_Para ] desta forma:
      while($dados_2 = $sql_2 -> fetch(PDO::FETCH_OBJ)){ $Id_De = ($dados_2 -> De); $Id_Para = ($dados_2 -> Para); } Mas em fim eu gostaria de saber como mostrar somente um resultado ou seja o ultimo resultado que tiver o meu ID em ambas colunas [ Id_De ou Id_Para ].
      Antes de vocês me recomendar a função DESC LIMIT 'valor' saiba eu quero que liste todos os usuários que enviou ou recebeu minha mensagem não somente 1 ou seja se eu mandar um mensagem para o usuário 2 e ele me retornar uma mensagem vai mostrar somente o ultimo registro que tenha o meu ID e o id dele.
       
      Atenciosamente,
      ~Ronaldo
       
    • By TheRonaldoStar
      Oi, mais cedo eu fiz um post aqui no site mas um pouco longo creio eu que e mais fácio eu fazer uma pergunta mais direta.
      A pergunta é:
      Como posso fazer agrupamentos de uma tabela através de dois campos cujo os valores são =, mesmo que esteja invertidos?
      EX: [DE = "1"], [PARA = "2"].
      E fazer o agrupamento ou só mostrar o ultimo cadastro mesmo que eles estejam invertidos desta forma?
      EX: [DE = "2"], [PARA = "1"].
       
      Acho que agora com este post fui mais claro, Alguém pode me ajudar por favor??.
      Atenciosamente,
      ~Ronaldo
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.