PHP: Функция array_filter()

Функция array_filter() в PHP — это удобный инструмент для фильтрации элементов массива по заданному условию. Она позволяет избирательно удалять или оставлять элементы массива, основываясь на определенном критерии. Это делает её незаменимой при обработке данных и очистке массивов от ненужных элементов.

Что делает функция array_filter()?


Функция array_filter() принимает массив и, при необходимости, функцию обратного вызова (callback), которая определяет, какие элементы массива должны остаться, а какие — удалены. Результатом работы функции является новый массив, содержащий только те элементы, которые прошли фильтрацию.

Синтаксис функции:
array_filter(array, callable_function, flags)

  1. array: исходный массив, который нужно отфильтровать.
  2. callable_function (необязательный): функция обратного вызова, которая принимает элемент массива и возвращает true, если элемент должен остаться, и false, если элемент должен быть удалён.
  3. flags (необязательный): флаги, управляющие обработкой ключей массива.

Примеры использования функции array_filter()



1. Простая фильтрация массива чисел
Оставляем только нечётные числа:
$numbers = [1, 2, 3, 4, 5];
$oddNumbers = array_filter($numbers, fn($num) => $num % 2 !== 0);
print_r($oddNumbers);

Результат:
Array
(
    [0] =>1
   [2] =>3
   [4] => 5
)

2. Фильтрация ассоциативного массива
Оставляем только элементы с ненулевыми значениями:
$data = ["apple" => 1, "banana" => 0, "cherry" => 3];
$filteredData = array_filter($data);
print_r($filteredData);

Результат:
Array
(
    [apple] => 1
    [cherry] => 3
)

3. Фильтрация с сохранением ключей
Оставляем только элементы с ключами, начинающимися на "a":
$data = ["apple" => 1, "banana" => 2, "avocado" => 3];
$filteredData = array_filter($data, fn($k) => strpos($k, 'a') === 0, ARRAY_FILTER_USE_KEY);
print_r($filteredData);

Результат:
Array
(
    [apple] => 1
    [avocado] => 3
)

Практическое применение функции array_filter()


Функция array_filter() широко используется в следующих сценариях:
  • Очистка массивов: удаление пустых или нулевых элементов.
  • Фильтрация данных: выборка нужных элементов из больших массивов.
  • Парсинг CSV/XML/JSON: очистка данных перед дальнейшей обработкой.

Советы по использованию функции array_filter()


  • Используйте анонимные функции: для удобства написания фильтров используйте лямбда-функции (arrow functions).
  • Укажите флаги: используйте флаг ARRAY_FILTER_USE_KEY, если хотите фильтровать по ключам массива.
  • Проверяйте тип данных: убедитесь, что элементы массива имеют нужный тип перед применением фильтра.

Функция array_filter() — это мощный инструмент для фильтрации элементов массива в PHP. Она позволяет легко и эффективно очищать массивы от ненужных элементов, что делает её незаменимой в задачах обработки данных и чистки массивов.

Автор:  29.10.2025 08:39:52 pm