2016-10-03 37 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​​時,我遇到了同樣的問題,這個工具幫助我獲得了我需要的東西,因此我分享了它。 –