Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
Coloque aqui no fórum o método usado para gerar esse retorno e também a linha do print_r
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
>
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 ?
Depois dessa resposta, não precisa colocar mais o link não João!!
Sensacional!!
O código funcionou perfeitamente!!
Mais uma vez!!
Muito Obrigado!!
Porque na hora de imprimir não colocar a posição do array?
print_r($array[0]);