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

#php

#php

Вопрос:

Мне нужно проверить, существует ли какое-либо значение ключа в массиве с использованием PHP. Вот мой код:

 $comment = json_encode(array(array('day_id' => '1', 'comment' => 'vodka0'),array('day_id' => '', 'comment' => ''), array('day_id' => '3', 'comment' => 'vodka3'),array('day_id'=>'4','comment'=>'hytt')));
$arrComment = json_decode($comment, true);
  

Здесь мне нужно проверить, имеет ли какой-то day_id ключ значение или все day_id ключи имеют пустое значение.

Ответ №1:

Используйте array_column и array_filter , чтобы проверить это:

 // extract all day_id columns
$dayId = array_column($arrComment, 'day_id');
// filter the empty values
$filtered = array_filter($dayId);

if (empty($filtered)) {
  echo "All Day Ids are empty.";
}
else {
  echo "Some or all of them have some value.";
}
  

Ответ №2:

Вы имеете в виду это: var_dump(array_column($arrComment, 'day_id'));

Он возвращает все значения day_id ключа. А теперь делай, что хочешь.

Комментарии:

1. Мне нужно проверить это внутри if...else заявления.

2. Ok приведенный выше код предоставит вам массив day_id значений. Теперь отфильтруйте свой массив с помощью $someVar = array_filter($values) . array_filter() удаляет пустое значение. Если все они пусты $someVar , переменная будет пустой. Надеюсь, вы получили свой ответ. Я могу дать вам идею, и вы получите свои подсказки. Теперь напишите свой код. Вы получите ожидаемый результат. Счастливого кодирования.

Ответ №3:

 for ($i = 0; $i < count($arrComment); $i  ) {
    if (isset($arrComment[$i]['day_id'])) {
        //value is set
    } else {
        //value is not set
    }
}
  

Комментарии:

1. Хотя этот фрагмент кода может решить вопрос, включение объяснения действительно помогает улучшить качество вашего сообщения. Помните, что вы отвечаете на вопрос для читателей в будущем, и эти люди могут не знать причин вашего предложения по коду.