2012-10-17 29 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

向我们显示您的代码 –