Вы можете просто использовать PHP-функцию array_filter()
для удаления или фильтрации пустых значений из массива. Эта функция обычно фильтрует значения массива с помощью функции обратного вызова.
Однако, если функция обратного вызова не указана, все пустые записи массива будут удалены, такие как ""
(пустая строка), 0
(0 как целое число), 0.0
(0 как число с плавающей запятой), "0"
(0 как строка), NULL
, FALSE
и array()
(пустой массив). Давайте попробуем на примере понять, как это работает:
<?php
$array = array("apple", "", 0, 2, null, -5, "0", "orange", 10, false);
var_dump($array);
echo "<br>";
// Фильтрация массива
$result = array_filter($array);
var_dump($result);
?>
В приведенном выше примере значения 0
и "0"
также удаляются из массива. Если вы хотите сохранить их, вы можете определить функцию обратного вызова, как показано в следующем примере:
<?php
$array = array("apple", "", 0, 2, null, -5, "0", "orange", 10, false);
var_dump($array);
echo "<br>";
// Определяем callback-функцию
function myFilter($var){
return ($var !== NULL && $var !== FALSE && $var !== "");
}
// Фильтрация массива
$result = array_filter($array, "myFilter");
var_dump($result);
?>
Функция обратного вызова myFilter()
вызывается для каждого элемента массива. Если myFilter()
возвращает TRUE
, то этот элемент будет добавлен в массив результатов, в противном случае — нет.