Как получить доступ к значению $ array [@key]

Я работаю с API Expedia и он работает хорошо, но я не знаю, как получить доступ к этому особому типу ключа массива. Ответ дан ниже

$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
)
)
)
)

Я хочу получить доступ к значению @hotelId под ключом ‘city’, но не могу

Я пробовал с обоими типами, но оба раза не получилось

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

Пожалуйста, помогите мне .. спасибо заранее

4

Решение

Это должно работать для вас:

(Это потому, что вы не можете получить доступ к свойству, которое не имеет допустимого имени переменной, поэтому вы должны использовать фигурный синтаксис)

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

Вы можете прочитать больше об этом в руководстве: http://php.net/manual/en/language.variables.variable.php

И цитата оттуда:

Фигурные скобки также может использоваться, чтобы четко разграничить имя свойства. Они наиболее полезны при доступе к значениям в свойстве, которое содержит массив, когда имя свойства состоит из нескольких частей, или когда имя свойства содержит символы, которые не являются допустимыми (например, из json_decode () или SimpleXML).

5

Другие решения

Других решений пока нет …