2012-10-17 28 views
-1

可能重複:
Able to see a variable in print_r()'s output, but not sure how to access it in code提取值

我使用SOAP來從服務器響應我得到一個PHP數組這樣

數據
Array 
(
[BookResult] => stdClass Object 
(
    [PNR] => 5WPODU 
    [BookingId] => 31149 
    [Status] => stdClass Object 
    (
    [StatusCode] => 03 
    [Description] => Fare is not available at the time of booking 
    [Category] => BK 
    ) 
    [SSRDenied] => N 
    [ProdType] => Flight 
) 
) 

我想知道的是如何在單獨的變量中提取「PNR」和「StatusCode」值,以便我可以將th在數據庫中。

試過這種沒有工作

$p = (object) $array; 
echo $p->StatusCode; 
+1

嘗試'$陣列[ 「BookResult」] - > PNR'用於PNR和'$ array [「BookResult」] - > Status-> StatusCode' for StatusCode –

+0

u應該將其作爲json或xml使用 –

回答

0
var_dump($array['BookResult']->PNR); 
var_dump($array['BookResult']->Status->StatusCode); 
+0

不工作 - 通知:試圖獲取非對象的屬性 –

4

試試這個:

$PNR = $array["BookResult"]->PNR;
$StatusCode= $array["BookResult"]->Status->StatusCode;

$陣列是。所以第一個潛水是$ array ['BookResult']。 BookResult是stdClass實例,所以接下來是$ array ['BookResult'] - > Status(獲取對象的屬性)。 狀態也stdClass的實例,以得到它的屬性:$陣列[ 'BookResult'] - >狀態 - >的StatusCode

+0

注意: 試圖獲取非對象的屬性 –

+0

必須工作,如果var_dump給你正是你張貼 –

+0

警告!在嘗試使用我發佈的代碼之前,您不能執行'(object)$ array;'!沒有修改。 –

0

假設結果被存儲在$陣列

echo $array['BookResult']->Status->StatusCode; 
echo $array['BookResult']->PNR; 
+0

不工作 - 注意:試圖獲取非對象的屬性 –

+0

向我們顯示您的代碼 –