Тест, где идентификатора нет в (n, n1, n2)

#php #arrays

#php #массивы

Вопрос:

Учитывая значение #some_id = x, каков правильный синтаксис или метод для проверки того, что идентификатор не существует в коллекции идентификаторов?

Например…

 if($some_id not in array(3, 5, 9)){
  //do something
}
  

Ответ №1:

 $theArray = array(3, 5, 9);

if(! in_array($x, $theArray)){
    // do something
}
  

http://php.net/manual/en/function.in-array.php

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

1. Ты опередил меня на пару секунд :/

Ответ №2:

in_array слишком медленный

 $array = array_flip($array);

if(!isset($array[$some_id])){ // do something }
  

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

1. Вы правы, это быстрее, но в большинстве случаев это не имеет значения, и in_array намного легче читать.

Ответ №3:

Ответы in_array верны, но в случае некоторой двусмысленности между терминами «id» и «key», если вы пытаетесь проверить, существует ли ключ, вы могли бы выполнить одно из следующих действий:

 if (array_key_exists($key, $array)) ...
  

или…

 if (isset($array[$key])) ...