Перейти к содержимому

Функция array_filter() в PHP: Полное руководство

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

Как работает функция array_filter()?

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

Синтаксис функции array_filter()

Базовый синтаксис функции array_filter() в PHP выглядит следующим образом:

Синтаксис array_filter() в PHP

php
array_filter(array, callback)
  • array — это массив, который вы хотите отфильтровать.
  • callback — это пользовательская функция, которую вы предоставляете для определения элементов, которые должны быть включены в отфильтрованный массив.

Использование функции array_filter() с пользовательской функцией обратного вызова

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

Ниже приведён пример, который фильтрует массив чисел, оставляя только чётные числа:

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

php
<?php

$numbers = [1, 2, 3, 4, 5, 6];

$evenNumbers = array_filter($numbers, function($number) {
    return ($number % 2 == 0);
});

print_r($evenNumbers);

?>

Результат:


console
Array ( [1] => 2 [3] => 4 [5] => 6 )

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

В дополнение к использованию пользовательской функции обратного вызова, вы также можете воспользоваться одной из встроенных функций обратного вызова, доступных в PHP. Например, вы можете использовать функцию is_numeric, чтобы включить в отфильтрованный массив только числовые значения:

Использование функции array_filter() в PHP для фильтрации только числовых значений

php
<?php

$mixed = [1, '2', 'three', 4, 5];

$onlyNumbers = array_filter($mixed, 'is_numeric');

print_r($onlyNumbers);

?>

Результат:


console
Array ( [0] => 1 [1] => 2 [3] => 4 [4] => 5 )

Схема потока работы функции array_filter()

Заключение

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

Практика

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

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.