2016-10-03 36 views
1

我不得不在PHP中创建一个特别复杂的SOAP请求,并且似乎已经收到对象内的对象。我需要获得一个特定的值,例如“session_token”。我可以var_dump请求,甚至把它转换为一个数组,但我不能访问单个元素。请帮忙!如何访问stdClass多级别对象或数组?

对象:

stdClass Object ([login_response] => stdClass Object 
    ([response_context] => stdClass Object 
     ([session_token] => b1043dcb82625701188ffff03572 
      [response_status] => OK [response_message] => Login successful 
       )))) 

转换数组:

Array ([0] => 
    Array ([response_context] => 
     Array ([session_token] => b1043dcb82625701188ffff03572 
      [response_status] => OK [response_message] => Login successful 
      ))) 
+0

作为一个对象'$ obj-> login_response-> response_context-> session_token'例如 – RiggsFolly

+0

@RiggsFolly哦,你为什么不把那作为一个答案,它是如此美丽。谢谢。 –

+0

好,按要求做 – RiggsFolly

回答

0

如果你把它作为一个对象,并且没有理由不去做。

echo $obj->login_response->response_context->session_token; 
echo $obj->login_response->response_context->response_status; 
echo $obj->login_response->response_context->response_message; 

将输出

b1043dcb82625701188ffff03572 
OK 
Login successful 
+0

谢谢@RiggsFolly,这个作品完美。 –

2

一旦它是一个数组,它只是一个阵列,例如

$obj->foo->bar->baz 

将只是

$arr['foo']['bar']['baz'] 

所以你的情况

$arr[0]['response_context']['response_status'] -> "OK" 
+0

谢谢,也是一个很好的答案 –

-2

您可以使用此服务,array visualizer,这将帮助你的目标,只有你所需要的提取。刚过它的print_r输出。而已。 试试看

+0

使输出漂亮没有任何与访问它。 –

+0

我同意它使它看起来很漂亮,但另一方面它也显示访问特定数组项目的正确代码,因此它帮助新手可视化数组的结构并为每个元素提供代码。 –

+0

当我开始使用API​​时,我遇到了同样的问题,这个工具帮助我获得了我需要的东西,因此我分享了它。 –