Объекты, массив в массиве. Как вывести значение?

205
25 июня 2017, 16:32

Получаю ответ вида:

{
    "response": {
        "count": 239,
        "items": [{...}, {...}, {...}, {...}, {...}]
    }
}

Использую json_decode() чтобы преобразовать ответ.

Нужно вернуть значения которые в "items": [{...}, {...}, {...}, {...}, {...}]

Использую return $obj->{'response'}->{'items'}->{'id'} не работает.

// syntax error, unexpected '{'

А count значение выводит return $obj->{'response'}->{'count'}

// 239

Как-же вывести значения из items?

Answer 1

Интерпретатор совершенно верно вам замечает, что у вас не ожидаемая фигурная скобка, так как скорее всего, никакого поля с именем id у вас нет. При обращении к $obj->{'response'}->{'items'} скорее всего вы получаете просто набор значений, который я бы вам предложил получить либо как массив целиком:

(array)($obj->response->items)

либо обращаясь к определенному элементу этого массива, например так:

$obj->response->items[1]

Примечание: фигурные скобки тут не нужны, пока что в получаемом вами ответе не будет чего-либо, нарушающего соглашения об именовании переменных в php. Например, если у вас в полученном json есть переменная с именем, содержащим дефис, то использовать ее нужно как раз не как $obj->some-var->items[1], а как $obj->{'some-var'}->items[1].

READ ALSO
PHPStorm, 502 Bad Gateway при попытке запустить index.php

PHPStorm, 502 Bad Gateway при попытке запустить index.php

Установил недавно PHPStorm, создал в нем два файлика, indexhtml и index

375
кусок кода,который в некоторых местах “не работает” [требует правки]

кусок кода,который в некоторых местах “не работает” [требует правки]

Есть родительский класс, с методом test(), в котором я использую константу через вызов имякласса::константа;

210
Ошибка в вычислениях с большими числами - pow(10,54)

Ошибка в вычислениях с большими числами - pow(10,54)

Почему при выполнении этого кода получается 0, а должно быть 123?

330
Как перехватить сообщение WM_NCCREATE?

Как перехватить сообщение WM_NCCREATE?

Как перехватить сообщение WM_NCCREATE (о создании окна) ?

313