array_search
не не начинает поиск по индексу 1. Попробуйте этот пример:
<?php
$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');
$key = array_search('blue', $array); // $key = 0
?>
Какова бы ни была проблема с вашим кодом, это не значит, что его первый элемент имеет индекс 0.
Скорее всего, вы используете ==
вместо ===
для проверки возвращаемого значения. Если array_search возвращает 0, указывая первый элемент, следующий код не будет работать:
// doesn't work when element 0 is matched!
if (false == array_search(...)) { ... }
Вместо этого вы должны проверить, используя ===
, который сравнивает и значение, и тип
// works, even when element 0 is matched
if (false === array_search(...)) { ... }