Ir para o conteúdo
Gonçalo Paiva

[Resolvido] Problema PHP

Mensagens Recomendadas

Gonçalo Paiva

Olá Forum, estou a fazer uma solicitação a um web service ao qual me retorna o seguinte:

object(stdClass)#2 (2) { ["currentAccountDocs"]=> array(8) { [0]=> object(stdClass)#3 (7) { ["docName"]=> string(7) "Factura" ["docNumber"]=> string(6) "A13/58" ["docDate"]=> string(10) "2013-02-25" ["docCreditAmount"]=> float(399.75) ["docDebitAmount"]=> float(0) ["docPaidAmount"]=> float(0) ["docDueDate"]=> string(10) "2013-02-25" } [1]=> object(stdClass)#4 (7)

Alguma ideia de como posso chegar aos valores de cada objecto e imprimi-los no ecra? ( Factura, A13/58, 2013-02-25 ... )

Tentei correr o vector assim, mas nada me aparece no ecrã.

foreach($response as $key =>$object){

echo $object->docName."
".$object->docNumber."
".$object->docDate."
".$object->docCreditAmount."
";
}

?>

Editado por apocsantos
tag code + geshi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
help

Isso não parece um simples array. Você pode tentar um explode para pegar o elemento que precisa.

<?php
$valores ='object(stdClass)#2 (2) { ["currentAccountDocs"]=> array(8) { [0]=> object(stdClass)#3 (7) { ["docName"]=> string(7) "Factura" ["docNumber"]=> string(6) "A13/58" ["docDate"]=> string(10) "2013-02-25" ["docCreditAmount"]=> float(399.75) ["docDebitAmount"]=> float(0) ["docPaidAmount"]=> float(0) ["docDueDate"]=> string(10) "2013-02-25" } [1]=> object(stdClass)#4 (7)';
$valor = explode("string(6) \"", $valores);
$valor2 = explode("\"", $valor[1]);
echo $valor2[0];
?>

Editado por apocsantos
geshi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

E não te lembraste de formatar a informação que te é retornada? É que isso que nos colocaste é de difícil leitura se não houver a respectiva formatação.

object(stdClass)#2 (2) { 
   ["currentAccountDocs"]=> array(8) 
   { 
       [0]=> object(stdClass)#3 (7) 
       {
           ["docName"]=> string(7) "Factura" 
           ["docNumber"]=> string(6) "A13/58" 
           ["docDate"]=> string(10) "2013-02-25" 
           ["docCreditAmount"]=> float(399.75) 
           ["docDebitAmount"]=> float(0) 
           ["docPaidAmount"]=> float(0) 
           ["docDueDate"]=> string(10) "2013-02-25" 
       } 
       [1]=> object(stdClass)#4 (7)
       {
           ["docName"]=> string(7) "Factura" 
           ["docNumber"]=> string(6) "A13/58" 
           ["docDate"]=> string(10) "2013-02-25" 
           ["docCreditAmount"]=> float(399.75) 
           ["docDebitAmount"]=> float(0) 
           ["docPaidAmount"]=> float(0) 
           ["docDueDate"]=> string(10) "2013-02-25" 
       }
   }
}

Então, isto significa que tens de aceder primeiro ao índice array $response->currentAccountDocs para que possas percorrer todos os elementos dentro.

  • Voto 1

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
RuiAlmeida20

exprimenta:

foreach($response->currentAccountDocs as $object) {
   echo
    $object->docName .
    $object->docNumber.
    $object->docDate.
    $object->docCreditAmount
   ;   
}

  • Voto 1

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.