Огляди, рейтинги та поради з вибору техніки 2026
Hi-News: Цифровий Світ » Компютери » PHP array_search: пошук значення в масиві

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

12.02.2018, 11:38
1 350
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 або порожній рядок.

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

Приклад 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().
Схожі статті
Функція strpos в PHP: визначення позиції підрядка
Функція strpos в PHP: визначення позиції підрядка
Пошук входження підрядка в рядок за допомогою функції PHP strpos(). Типи вхідних і вихідних параметрів, приклади і тонкощі використання. Схожі
Як з рядків прибрати пробіли на PHP?
Як з рядків прибрати пробіли на PHP?
Прибрати пробіли в рядках можна трьома способами. Функція trim() видаляє зайві символи з боків рядка: пробіли, табуляцію, перенесення рядка. Функція
Двійковий пошук - розбір алгоритму на мові C++
Двійковий пошук - розбір алгоритму на мові C++
В розробці програмного забезпечення масиви використовуються повсюдно. «Розумні» типи даних в сучасних мовах програмування, такі як, наприклад,
Прокомментировать
Натисніть на зображення, щоб оновити код, якщо він нерозбірливий