Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何访问$array[@key]值_Php_Arrays_Array Key_Arrayobject - Fatal编程技术网

Php 如何访问$array[@key]值

Php 如何访问$array[@key]值,php,arrays,array-key,arrayobject,Php,Arrays,Array Key,Arrayobject,我正在使用expedia API,它运行良好,但我不知道如何访问这种特殊类型的数组密钥。答复如下 $response = stdClass Object ( [@size] => 1 [@activePropertyCount] => 144 [city] => 1 [@hotelId] => 12345 [HotelSummary] => stdClass Object ( [@or

我正在使用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

请帮帮我。。提前感谢您

这应该适合您:

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

您可以在手册中了解更多信息:

还有一句话:

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


var_dump($response->{@hotelId})抱歉,响应不是数组,而是stdClass类型的对象。因此,我无法使用$response['@hotelId']@panda访问它。谢谢你的工作,但结果并不准确。它给我'string(5)“12345',但我只想要12345它只是
var_dump
函数规范使用
echo
print
确定谢谢@panda。我得到了it@Rizier123我从数组中得到了$response['abc']['@hotelId']的值;但它显示得像字符串(7)(“asasasa”)一样,就像var_dump显示的那样。如果我尝试打印$response['abc']->{'@hotelId'},我如何才能像asasasasa一样检索它;然后它显示空value@ankitverma然后您可能将
var\u dump()
的输出存储在数组元素中。请从以下位置显示您的输出:
print\r($response[“abc”][“@hotelld”])(最好在这里发布一个粘贴库链接)。如果您真的将:
var\u dump()
的输出存储在元素中,我将首先搜索您执行该操作的源代码并在那里进行更改,否则您将不得不使用正则表达式,例如
preg\u match(“/String\(\d+\)\(*?\)/”,$input)
。还要注意,这个问题实际上是关于对象属性而不是数组元素的。
echo $response->{"@hotelId"};