Такая функция как in_array
используется очень часто. Однако, есть особенности, на которые сегодня обратил моё внимание aktuba, дав мне вот такой кусочек кода:
$array = array(0, 'one', 'two'); var_dump(in_array('three', $array));
Работает он немного неожиданно — выдаёт true
. Всё дело в том, что строка three
приводится к типу элемента массива перед сравнением. В нашем случае интересно приведение к числу.
Если такое поведение нежелательно, можно заставить сравнивать элементы ещё и по типу, передав третий параметр:
$array = array(0, 'one', 'two'); var_dump(in_array('three', $array, true));