проверить, существует ли конкретное значение ключа в JSON

0

У меня есть сценарий JSON, который имеет несколько объектов, все из которых содержат идентификатор. Я хочу проверить, есть ли объект с определенным идентификатором, и если да, то этот идентификатор должен быть восстановлен.

 $json = {"match_id":"1234"};
 $mydata = json_decode($json,true);
 $specific_id = $_GET['id'];

Как я могу достичь этого?

  • 0
    Я мог бы на самом деле использовать ответ на этот вопрос, надеюсь, кто-то может предоставить в ответном ответе приятель!
  • 0
    Спасибо Огромный Клункер!
Теги:

3 ответа

1
Лучший ответ
$data = json_decode($json, true);

if (!empty($data['match_id']) {
    // if you're sending your ids as a comma'd string, for some reason
    $ids = explode(',', $data['match_id']);
    if (in_array($idYouAreCheckingFor, $ids)) {
        // do something
    }
}

if (!empty($data['match_id']) {
    // if not, ignore the above line
    if (in_array($idYouAreCheckingFor, $data['match_id'])) {
        // do something
    }
}

Возможно, ваши данные не будут переданы правильно, или ваш индекс или идентификаторы пустые. Всегда хорошо проверять.

1

Вы можете использовать in_array() как это

in_array($specific_id, $mydata);
  • 1
    Не могли бы вы объяснить немного больше. Как узнать, какой ключ нужно пройти, чтобы проверить, равен ли $ specific_id?
  • 0
    Пожалуйста, посмотрите краткое описание http://php.net/manual/en/function.in-array.php
0

Вы можете использовать json-декодирование как объект и проверить все существующее:

 $json = {"match_id":"1234"};
 $mydata = json_decode($json);
 if (isset($mydata->match_id)) {
    echo $mydata->match_id; // 1234
 }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню