Новини високих технологій
» » PHP array_search: пошук значення в масиві

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

12-02-2018, 11:38
1 059
Одна з основних операцій при роботі з масивами - пошук конкретного значення. Для цього призначена функція 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(). Типи вхідних і вихідних параметрів, приклади і тонкощі використання. Схожі
Властивість CSS margin: зовнішні відступи елементів
Властивість CSS margin: зовнішні відступи елементів
Визначення зовнішніх відступів елементів за допомогою властивості CSS margin. Груповий синтаксис і завдання маргинов окремо для кожної сторони.
Як здійснити запис у файл Java
Як здійснити запис у файл Java
При написанні програм на мові Java рано чи пізно постане необхідність читання і запису інформації в файл. Для цього в мові передбачені наступні
Об'єкти та масиви PHP: array push & pop
Об'єкти та масиви PHP: array push & pop
Стекова організація даних зручна для створення динамічної функціональності. Масиви на PHP, функції push & pop на перших і останніх елементах
Як визначити кількість елементів у масиві PHP?
Як визначити кількість елементів у масиві PHP?
При використанні масивів має значення кількість містяться в них даних. Особливості синтаксису і логіки мови PHP дозволяють динамічно визначати
Javascript Array для збереження необмеженої кількості змінних
Javascript Array для збереження необмеженої кількості змінних
Логічно масив займає проміжне положення між змінними і об'єктами. Практично не слід надавати особливого значення словам. У програмі є змінні і код.