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

16 0 Новини високих технологій

Одна з основних операцій при роботі з масивами - пошук конкретного значення. Для цього призначена функція 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 array_search: пошук значення в масиві

Приклади використання

Приклад 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";
}
?>

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

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

Приклад 4. Повертається тільки ключ першого виявленого збігу.

    

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