Ir para conteúdo

POWERED BY:

Arquivado

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

saopaulinho

[Resolvido] Array + class stdClass

Recommended Posts

Galera,

Mais uma vez, peço a ajuda de vocês.

 

É o seguinte.

Estou usando o print_r para imprimir um array e o resultado apresentado é:

 

stdClass Object ( [string] => Array ( [0] => FORMAPAGTO=Boleto Real ABN AMRO [1] => CODPAGAMENTO=10 [2] => VENDAID=teste123 [3] => VALOR=100 [4] => CODAUTORIZACAO=70011 [5] => PARCELAS=1) )

 

porém quero imprimir apenas o Array[0] que seria o "FORMAPAGTO=Boleto Real AN AMRO"

 

como posso fazer isso?

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, na verdade esse array é um retorno de um envelope SOAP, então o código q uso para imprimir o array é:

 

print_r($DecryptRequestResponse->DecryptRequestResult);

 

este pacote SOAP está no link abaixo:

 

https://homologacao.pagador.com.br/BraspagGeneralService/BraspagGeneralService.asmx?WSDL

 

E como disse, o q está sendo impresso na tela é o array inteiro, mas quero pegar apenas uma parte dele, já tentei usar

 

print_r($DecryptRequestResponse->DecryptRequestResult[0]);

 

mas da erro.

João, já procurei por seus posts no imaster e não encontrei, você poderia me passar o link com este post?

OBrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

E como disse, o q está sendo impresso na tela é o array inteiro, mas quero pegar apenas uma parte dele, já tentei usar

print_r($DecryptRequestResponse->DecryptRequestResult[0]);

mas da erro.

 

Sim, da o erro porque você não pode trabalhar com uma propriedade da classe como matriz se ela não for uma matriz. O retorno desse método é um objeto da stdClass e contém uma propriedade chamada string, essa propriedade que é a matriz:

 

echo $DecryptRequestResponse->DecryptRequestResult->string[ 0 ];

 

Agora, se você iterar essa matriz, você consegue já separar os valores de uma vez:

 

$matches		= null;
$response		= $DecryptRequestResponse->DecryptRequestResult;

for ( $i = 0 , $t = count( $response->string ) ; $i < $t ; ++$i ){
if ( preg_match( '/([^\=]+)\=(.*)/' , $response->string[ $i ] , $matches ) ){
	$name = strtolower( $matches[ 1 ] );
	$$name = $matches[ 2 ];
}
}

echo 'Forma de pagamento: ' , $formapagto , '<br />' , PHP_EOL;
echo 'Código do pagamento: ' , $codpagamento , '<br />' , PHP_EOL;
echo 'Identificador da venda: ' , $vendaid , '<br />' , PHP_EOL;
echo 'Valor da venda: ' , $valor , '<br />' , PHP_EOL;
echo 'Código de Autorização: ' , $codautorizacao , '<br />' , PHP_EOL;
echo 'Parcelas: ' , $parcelas , '<br />' , PHP_EOL;

 

A saída será:

 

Forma de pagamento: Boleto Real ABN AMRO<br />

Código do pagamento: 10<br />

Identificador da venda: teste123<br />

Valor da venda: 100<br />

Código de Autorização: 70011<br />

Parcelas: 1<br />

 

João, já procurei por seus posts no imaster e não encontrei, você poderia me passar o link com este post?

 

Link de qual POST ?

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.