@Deletron247

Как распарсить и найти нужное значение в Json?

от сервера получаю вот такую строку
[
  {
    "id": 963343,
    "name": "\u0424\u043e\u0440\u043c\u0430 \u0433\u043e\u043b\u043e\u0441\u0430",
    "name_eng": "Koe no katachi",
    "year": "2016"
  },
  {
    "id": 977743,
    "name": "\u0424\u043e\u0440\u043c\u0430 \u0432\u043e\u0434\u044b",
    "name_eng": "The Shape of Water",
    "year": "2017"
  },
  {
    "id": 493390,
    "name": "\u0413\u043e\u043b\u043e\u0441\u0430",
    "name_eng": "The Voices",
    "year": "2014"
  }
]


Мне нужно найти id зная что name:Форма голоса, а year:2016
Я думаю что потребуется json_decode на как найти я не знаю
  • Вопрос задан
  • 224 просмотра
Решения вопроса 1
cr1gger
@cr1gger
Все дороги ведут в Рим — встретимся в Риме!
$json = '[
  {
    "id": 963343,
    "name": "\u0424\u043e\u0440\u043c\u0430 \u0433\u043e\u043b\u043e\u0441\u0430",
    "name_eng": "Koe no katachi",
    "year": "2016"
  },
  {
    "id": 977743,
    "name": "\u0424\u043e\u0440\u043c\u0430 \u0432\u043e\u0434\u044b",
    "name_eng": "The Shape of Water",
    "year": "2017"
  },
  {
    "id": 493390,
    "name": "\u0413\u043e\u043b\u043e\u0441\u0430",
    "name_eng": "The Voices",
    "year": "2014"
  }
]';
$array = json_decode($json, true);

$result = array_filter($array, function($item){
    if ($item['name'] == 'Форма голоса' && $item['year'] == '2016') return $item;
});

var_dump($result);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@qid00000000
Мало что знаю, но информацию найду в гугле
https://www.php.net/manual/ru/function.json-decode.php
Дальше пишешь функцию, в которой ищешь нужные значения и возвращаешь результат.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы