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.0callback тепер допускає значення 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() - Застосовує задану користувачем функцію кожного елемента масиву