[英]How to access stdClass Multi level object or array?
我不得不在 PHP 中發出一個特別復雜的 SOAP 請求,並且似乎已經收到了對象內的對象。 我需要獲得一個特定的值,例如“session_token”。 我可以 var_dump 請求,甚至將其轉換為數組,但我無法訪問單個元素。 請幫忙!
對象:
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
) ) )
一旦它是一個數組,它就只是一個數組,例如
$obj->foo->bar->baz
將只是
$arr['foo']['bar']['baz']
所以在你的情況下
$arr[0]['response_context']['response_status'] -> "OK"
如果你把它作為一個對象,並沒有理由不這樣做。
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
通常要訪問對象的任何鍵,需要這樣調用
echo $obj->key;
但是,由於這是一個多級對象,要訪問該元素,您必須像下面這樣編碼。
echo $obj->login_response->response_context->session_token;
結果將是b1043dcb82625701188ffff03572
同樣,通常要訪問數組的任何鍵,都需要這樣調用
echo $arr['key'];
但是,由於這是一個多級數組,要訪問元素,您必須像下面這樣編碼。
echo $arr[0]['response_context']['session_token'];
輸出是b1043dcb82625701188ffff03572
這里, 0
是$arr
數組的鍵。
response_context
是0
的鍵。
session_token
是response_context
的關鍵。
您可以使用此服務,數組可視化器,這將幫助您定位和僅提取您需要的內容。 剛剛過去的 print_r 輸出。 就是這樣。 試一試
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.