簡體   English   中英

如何訪問 stdClass 多級對象或數組?

[英]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_context0的鍵。

session_tokenresponse_context的關鍵。

您可以使用此服務,數組可視化器,這將幫助您定位和僅提取您需要的內容。 剛剛過去的 print_r 輸出。 就是這樣。 試一試

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM