Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как отфильтровать массив

Короткий ответ

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 — Применяет функцию к каждому элементу массива.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.