如何访问$ array [@key]值

时间:2015-03-26 13:22:53

标签: php arrays array-key arrayobject

我正在使用expedia API并且它运行良好,但我不知道如何访问这种特殊类型的数组键。回复如下:

$response = 
stdClass Object
(
    [@size] => 1
    [@activePropertyCount] => 144
    [city] => 1
    [@hotelId] => 12345
    [HotelSummary] => stdClass Object
        (
            [@order] => 0
            [@ubsScore] => 1074874
            [hotelId] => 151689
            [RoomRateDetailsList] => stdClass Object
                (
                    [RoomRateDetails] => stdClass Object
                        (
                            [roomTypeCode] => 195577
                            [rateCode] => 202369379
                            [maxRoomOccupancy] => 3
                            [quotedRoomOccupancy] => 2
                            [minGuestAge] => 0
                            [roomDescription] => Deluxe Room
                            [propertyAvailable] => 1
                            [propertyRestricted] => 
                            [expediaPropertyId] => 526332
                        )
                )
        )
)

我想在'city'键下访问@hotelId的值,但我不能

我试过这两种类型,但两次失败都是

$response->hotelId
and 
$response->@hotelId

请帮帮我..提前谢谢

1 个答案:

答案 0 :(得分:5)

这应该适合你:

(这是因为你无法访问没有合法变量名的属性,所以你必须使用卷曲语法)

echo $response->{"@hotelId"};

您可以在手册中详细了解这一点:http://php.net/manual/en/language.variables.variable.php

从那里引用:

  也可以使用

大括号来清楚地界定属性名称。当访问包含数组的属性中的值时,它们最有用,当属性名称由多个部分组成时,或当属性名称包含无效的字符时(例如来自json_decode())或SimpleXML)。