nisfarm.ru

PHP array_search: поиск значения в массиве

Одна из основных операций при работе с массивами - поиск конкретного значения. Для этого предназначена функция PHP array_search(). Она способна обрабатывать как одномерные, так и ассоциативные коллекции, возвращая ключ искомого значения, если оно обнаружено в массиве.

Синтаксис

Формализованное описание функции array_search() в PHP выглядит следующим образом:

mixed array_search (mixed value, array $collection [, bool strict])

Входные параметры:

  • $collection - массив, в котором будет произведен поиск;
  • value - искомое значение любого типа;
  • strict - необязательный логический флаг, устанавливающий строгий механизм сравнения с учетом типов.

Механизм работы

Функция PHP array_search() поочередно сравнивает value со всеми значениями в массиве collection. По умолчанию, сравнение осуществляется без учета типов операндов. Эту настройку можно изменить, установив для флага strict значение TRUE. Сравнение строк осуществляется с учетом регистра.




При обнаружении совпадения возвращается ключ, соответствующий найденному элементу, и работа функции прекращается. Следовательно, с ее помощью нельзя обнаружить множественное вхождение искомого значения в массив.

Если совпадений не найдено, функция вернет булево значение FALSE.

Проверять возвращенный результат следует с помощью оператора строгого равенства (===). Это важно, так как функция может вернуть значение, которое приводится к FALSE, например, 0 или пустую строку.

Язык программирования PHP

Примеры использования

Пример 1. При передаче в функцию PHP array_search() многомерного массива, результатом работы будет ключ искомого элемента.

 "winter","season2" => "spring","season3" => "summer","season4" => "autumn")-$result1 = array_search("winter", $array)-$result2 = array_search("summer", $array)-$result3 = array_search("april", $array)-?>

В этом примере переменная $result1 получит значение "season1", $result2 будет равна "season3", а $result3 будет присвоено булево значение FALSE, так как строка "april" не встречается в исходном массиве.

Пример 2. Функция PHP array_search() может обрабатывать и одномерный массив, считая его ключи следующими по порядку числовыми индексами.

Переменной $result будет присвоено значение 1, согласно индексу элемента "охотник" в массиве $array.

Пример 3. Возможная ошибка при анализе результата.

 "Washington",1 => "Adams",2 => "Jefferson",3 => "Madison",4 => "Monroe")-$result = array_search("Washington", $presidents)-if (!$result) {echo "G. Washington was not the first president of the USA"-}?>

Вот так, не проверяя полученный результат строгим равенством, можно получить неожиданное сообщение о том, что Джордж Вашингтон не был первым президентом Соединенных Штатов.

Джордж Вашингтон - первый президент США

Пример 4. Возвращается только ключ первого обнаруженного совпадения.

Несмотря на то, что искомое значение встречается в массиве трижды, функция вернет только первый найденный результат - 0. Для поиска множественных совпадений рекомендуется использовать функцию PHP array_keys().

Sdílet na sociálních sítích:

Podobné
© 2021 nisfarm.ru