PHP array filter: отбор и фильтрация элементов массива
PHP array_filter
PHP array_filter - это функция, которая позволяет отфильтровать элементы массива с помощью заданной пользователем функции обратного вызова. Она возвращает новый массив, содержащий только те элементы исходного массива, для которых функция обратного вызова вернула true.
Синтаксис функции array_filter выглядит следующим образом:
array_filter(array $array, callable $callback, int $flag = 0): array
$array- исходный массив, который необходимо отфильтровать.$callback- функция обратного вызова, которая будет применяться к каждому элементу массива. Эта функция должна возвращать true или false в зависимости от условий фильтрации элемента.$flag(необязательный) - дополнительный флаг, который позволяет настроить поведение функции. Например, использование константы ARRAY_FILTER_USE_KEY позволит передавать в функцию обратного вызова ключи элементов массива, а не только их значения.
Для наглядности давайте рассмотрим несколько примеров использования функции array_filter.
Пример 1:
// Отфильтруем массив, оставив только положительные числа
$array = [1, -2, 3, -4, 5];
$filteredArray = array_filter($array, function($value) {
return $value > 0;
});
print_r($filteredArray); // Выводит [1, 3, 5]
Пример 2:
// Отфильтруем массив, оставив только строки, начинающиеся с буквы "A"
$array = ['Apple', 'Banana', 'Avocado', 'Cherry'];
$filteredArray = array_filter($array, function($value) {
return strtoupper($value[0]) === 'A';
});
print_r($filteredArray); // Выводит ['Apple', 'Avocado']
Пример 3:
// Отфильтруем ассоциативный массив по ключам, оставив только те, которые являются числами
$array = ['name' => 'John', 'age' => 25, 'city' => 'Moscow', 123 => 'Number'];
$filteredArray = array_filter($array, function($key) {
return is_numeric($key);
}, ARRAY_FILTER_USE_KEY);
print_r($filteredArray); // Выводит [123 => 'Number']
Как видно из примеров, функция array_filter полезна во множестве сценариев программирования, когда необходимо отфильтровать массив с помощью пользовательского условия. Это позволяет эффективно работать с данными и получать только нужные элементы массива.