Как удалить пустые значения из массива
Короткий ответ
array_filter() без второго аргумента убирает все «пустые» значения:
<?php
echo json_encode(array_values(array_filter(['a', '', null, 'b', false])));Результат:
["a","b"]Сохранить ноль
Ноль тоже считается пустым. Чтобы его оставить, задайте условие явно:
<?php
$values = [0, '', 5, null, '0'];
echo json_encode(array_values(array_filter($values, fn ($value) => $value !== '' && $value !== null)));Результат:
[0,5,"0"]Строки из пробелов
Сначала обрежьте пробелы:
<?php
$lines = ['tea', ' ', 'coffee', ''];
echo json_encode(array_values(array_filter(array_map('trim', $lines))));Результат:
["tea","coffee"]Функции из этого ответа
- array_filter — Оставляет в массиве элементы, прошедшие проверку.
- array_values — Возвращает значения массива с ключами по порядку от нуля.
- trim — Удаляет пробелы и другие символы с начала и конца строки.