Распарсить JSON и получить значение на PHP

296
18 июля 2021, 06:50

Знаю, что нужно подучить получение массивов на PHP но время поджимает.
Подскажите пожалуйста, есть такой JSON, хочу получить значение price по id например: 240439

Пример JSON:

[
 { "240438":[{"price":"100.00","name":"blabla1","loc":"center"}] },
 { "240439":[{"price":"100.00","name":"blabla2","loc":"center2"}] }
]

После декодинга:

 $PHP_arr= json_decode( $JSON_arr,true );

Пробую так получить значение:

echo $PHP_arr[240439][0]->price;
echo $PHP_arr[240439][0]->{'price'};
echo $PHP_arr[240439][0]['price']; //:))
введите сюда код

Где я туплю? Как получить price значение зная id?

Answer 1

У вас по структуре JSON есть массив объектов такого плана:

{ "240438":[{"price":"100.00","name":"blabla1","loc":"center"}] }

Соответственно получить информацию сразу по id не получится. Нужно сначала найти, где этот id находится. Например, для id, равного 240439, цену можно получить так:

echo $PHP_arr[1]['240439'][0]['price'];

Соответственно, если известен только id, нужно выполнить поиск по массиву. Например, так:

$id = '240439';
foreach($PHP_arr as $value){
    if(array_key_exists($id, $value)){
        $price = $value[$id][0]['price'];
        break;
    }
}
echo $price;
READ ALSO
как корректно получить ответ от xhr

как корректно получить ответ от xhr

отправляю через XMLHttpRequest запрос на другую страницу с обработчиком php, где php скрипт обходит массив и после каждой иттерации выдает текст и в конце...

153
Как вывести список категорий на Опенкарт?

Как вывести список категорий на Опенкарт?

Нужно вывести список категорий на Опенкарт 30 В Опенкарте уже имеются контроллер (catalog/controller/product/category

176
Как отправлять JSON данные вместе с файлом на PHP сервер?

Как отправлять JSON данные вместе с файлом на PHP сервер?

У меня есть клиентская часть в виде файла profilehtml и серверная - api

110