array_filter
(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)
array_filter - Фільтрує елементи масиву за допомогою callback-функції
Опис
array_filter(array $array, ?callable $callback = null, int $mode = 0): array
Обходит каждое значение массиваarray
, передаючи його в callback
-функцію. Якщо callback
-функція повертає true
, данное значение изarray
повертається в результуючий array.
Ключі масиву зберігаються і можуть призвести до перепусток, якщо array
був проіндексований. Результат масиву (array) можна переіндексувати за допомогою функції array_values()
Список параметрів
array
Ітерований масив
callback
Callback-функція, що використовується
Якщо callback
-функція не передана, всі порожні значення масиву array
будуть видалені. Дивіться empty()Щоб дізнатися, як PHP визначає порожнє значення в цьому випадку.
mode
Прапор, який визначає, які аргументи передавати в callback
:
- **
ARRAY_FILTER_USE_KEY
**- передавати тільки ключ масиву як аргумент дляcallback
замість значення - **
ARRAY_FILTER_USE_BOTH
**- передавати і ключ, і значенняcallback
замість тільки значення
По умолчанию що означає, що в callback
-функцію передаватиметься лише значення як єдиний аргумент.
Значення, що повертаються
Повертає відфільтрований масив.
список змін
Версия | Опис |
---|---|
8.0.0 | callback тепер допускає значення null. |
8.0.0 | Тепер функція видасть помилку рівня E_WARNING , якщо параметр callback-функції, переданої у параметр callback , очікує на передачу значення за посиланням. |
Приклади
Приклад #1 Приклад використання array_filter()****
Loading...
Результат виконання наведеного прикладу:
Нечётные:
Array
(
[a] => 1
[c] => 3
[e] => 5
)
Чётные:
Array
(
[0] => 6
[2] => 8
[4] => 10
[6] => 12
)
Приклад #2 Использованиеarray_filter()безcallback
- функції
Loading...
Результат виконання наведеного прикладу:
Array
(
[0] => foo
[2] => -1
)
Приклад #3array_filter()** із зазначеним mode
**
Loading...
Результат виконання наведеного прикладу:
array(1) {
["b"]=>
int(2)
}
array(2) {
["b"]=>
int(2)
["d"]=>
int(4)
}
Примітки
Застереження
Якщо callback-функція змінює масив (наприклад, додає чи видаляє елементи), поведінка цієї функції невизначена.
Дивіться також
- array_intersect() - обчислює перетин масивів
- array_map() - Застосовує callback-функцію до всіх елементів зазначених масивів
- array_reduce() - Ітеративно зменшує масив до єдиного значення, використовуючи callback-функцію
- array_walk() - Застосовує задану користувачем функцію кожного елемента масиву