Введение

Когда требуется отфильтровать элементы массива, обычно приходится обходить все элементы и проверять, должен ли каждый из них попасть в результирующий массив.
Пример с использованием foreach:
Результат:
Функция array_filter() позволяет сделать код короче и выразительнее:
С PHP 7.4 можно использовать стрелочные функции:

Синтаксис

Функция перебирает элементы массива $array, передавая каждый из них в callback-функцию. Если callback возвращает true, элемент включается в результат.

Базовый пример

Для фильтрации чётных чисел:
Результат:

Использование метода класса в качестве callback

Можно передавать метод класса:
Результат:
Для статических методов:
Если класс реализует метод __invoke(), его экземпляр можно использовать как callable:
Результат:

Передача ключа или пары ключ-значение в callback

По умолчанию передаётся только значение. Чтобы передать ключ используйте ARRAY_FILTER_USE_KEY:
Результат:
Чтобы передать и ключ, и значение используйте ARRAY_FILTER_USE_BOTH:
Результат:

Итог

В этом руководстве вы научились использовать функцию PHP array_filter() для фильтрации элементов массива с помощью callback-функций.