array_filter
Оставляет в массиве элементы, прошедшие проверку.
Доступно с: PHP 4
Синтаксис
array_filter(array $array, ?callable $callback = null, int $mode = 0): arrayПараметры
| Параметр | Тип | Описание |
|---|---|---|
| $array | array | Исходный массив. |
| $callback | ?callable | Функция-проверка: элемент остаётся, если она вернула `true`. Без неё удаляются пустые значения. |
| $mode | int | С `ARRAY_FILTER_USE_KEY` в функцию передаётся ключ, с `ARRAY_FILTER_USE_BOTH` — значение и ключ. |
Возвращаемое значение
arrayНовый массив с отобранными элементами. Ключи сохраняются.
Примеры
Только чётные числа — обратите внимание на ключи:
<?php
print_r(array_filter([1, 2, 3, 4], fn ($n) => $n % 2 === 0));Результат:
Array
(
[1] => 2
[3] => 4
)Без функции удаляются пустые значения:
<?php
print_r(array_filter([0, 1, '', 'a', null]));Результат:
Array
(
[1] => 1
[3] => a
)Чтобы ключи шли по порядку, результат пропускают через array_values():
<?php
print_r(array_values(array_filter([1, 2, 3, 4], fn ($n) => $n % 2 === 0)));Результат:
Array
(
[0] => 2
[1] => 4
)Примечания
Ключи исходного массива сохраняются, поэтому в результате могут появиться «дырки» в нумерации. Если нужен обычный список, добавляйте array_values().
См. также
- array_map — Применяет функцию к каждому элементу массива.
- array_unique — Удаляет из массива повторяющиеся значения.
Вопросы и ответы по теме
- Как найти повторяющиеся значения в массиве
- Как найти элемент массива по условию
- Как отфильтровать массив
- Как посчитать, сколько раз значение встречается в массиве
- Как проверить, простое ли число
- Как проверить, что все элементы массива подходят под условие
- Как удалить пустые значения из массива
- Как удалить элемент из массива
В учебнике
- Функции — Как объявлять и вызывать функции в PHP — параметры, возврат значения, типы и область видимости.