Как отфильтровать массив
Короткий ответ
array_filter() оставляет элементы, для которых функция вернула true:
<?php
$numbers = [5, 12, 8, 20];
echo implode(', ', array_filter($numbers, fn ($n) => $n > 10));Результат:
12, 20Убрать пустые значения
Без функции-проверки удаляются пустые строки, нули и null:
<?php
print_r(array_values(array_filter(['a', '', 'b', null])));Результат:
Array
(
[0] => a
[1] => b
)По ключу
С флагом ARRAY_FILTER_USE_KEY в функцию передаётся ключ, а не значение:
<?php
$data = ['name' => 'Anna', 'password' => 'secret', 'age' => 25];
print_r(array_filter($data, fn ($key) => $key !== 'password', ARRAY_FILTER_USE_KEY));Результат:
Array
(
[name] => Anna
[age] => 25
)Функции из этого ответа
- array_filter — Оставляет в массиве элементы, прошедшие проверку.
- array_map — Применяет функцию к каждому элементу массива.