Что возвращает array_search (), если ничего не найдено?
Мне нужна следующая логика:
$found = array_search($needle, $haystack); if($found){ //do stuff } else { //do different stuff }
Цитирование справочной страницы array_search():
array_search()
Возвращает ключ для иглы, если он найден в массиве, FALSE в противном случае .
FALSE
Это означает, что вы должны использовать что-то вроде:
$found = array_search($needle, $haystack); if ($found !== false) { // do stuff // when found } else { // do different stuff // when not found }
Примечание. Я использовал оператор !==, который выполняет тип-чувствительное сравнение;см. Операторы сравнения , Тип Жонглирование и Преобразование в логическое для получения дополнительной информации об этом; -)
!==
, если вы просто проверяете, существует ли значение, in_array - путь.
Согласно официальной документации на http://php.net/manual/en/function.array-search.php:
Предупреждение. Эта функция может возвращать логическое значение FALSE, но также может возвращать небулево значение, которое оценивается как ЛОЖЬ. Пожалуйста, прочитайте раздел Booleans для получения дополнительной информации. Используйте оператор === для тестирования возвращаемое значение этой функции.
См. Этот пример:
$foundKey = array_search(12345, $myArray); if(!isset($foundKey)){ // If $myArray is null, then $foundKey will be null too. // Do something when both $myArray and $foundKey are null. } elseif ($foundKey===false) { // $myArray is not null, but 12345 was not found in the $myArray array. }else{ // 12345 was found in the $myArray array. }
array_search вернет FALSE, если ничего не найдено. Если он найдет иглу, он вернет ключ массива для иглы.
Более подробная информация по адресу: http://php.net/manual/en/function.array-search.php
Из документов:
Ищет стог сена для иглы и возвращает ключ, если он найден в массиве, в противном случае FALSE.