2016-11-23 2 views
0

У меня есть веб-сервис, который возвращает очень большой объект json. Я декодирую это в массив для синтаксического анализа.Получение всех экземпляров определенного поля из json в PHP

То, что я пытаюсь сделать, это извлечь все элементы массива из массива json, где в начале отдельного объекта массива есть [id] => 21.

Простая простая задача с использованием LINQ, но не идея, как это сделать в PHP. Должен быть способ фильтрации и извлечения.

+2

Добавить код с текущей целью: D – georoot

+0

И некритический пример json возвращается – Bobot

ответ

0

Я хотел бы использовать что-то вроде array_filter для этого

function find_id($var) 
{ 
    // returns whether the is is 21 
    return($var['id'] === 21); 
} 


$result = array_filter($jsondata, "find_id")); 

array_filterитерации по каждому значению в массиве, передавая их в функцию обратного вызова. Если функция обратного вызова возвращает значение true, текущее значение из массива возвращается в массив результатов. Клавиши массива сохраняются.

+0

Это замечательно. Есть ли способ указать значение фильтра вместо его жесткого кодирования? Я бы предпочел не использовать $ GLOBAL [...], если мне это удастся. – Nodoid

+0

Что-то вроде этого: http://php.net/manual/en/function.array-filter.php#93965 ?? – Sitethief

+0

Или используйте 'array_walk', который может получить параметр – Sitethief

Смежные вопросы