插件窝 干货文章 php去除数组的非空元素

php去除数组的非空元素

数组 array 函数 回调 496    来源:    2025-03-19

在PHP中,你可以使用 array_filter 函数来去除数组中的空元素。array_filter 函数会遍历数组中的每个元素,并将每个元素传递给回调函数。如果回调函数返回 true,则该元素会被保留在数组中;如果返回 false,则该元素会被移除。

默认情况下,array_filter 会移除所有值为 falsenull0""(空字符串)、[](空数组)的元素。如果你只想移除空字符串、null 和空数组,可以使用自定义回调函数。

以下是一个示例代码,展示如何去除数组中的非空元素:

<?php
// 原始数组
$array = [1, 2, null, '', 0, false, 'hello', [], 'world'];

// 使用 array_filter 去除空元素
$filteredArray = array_filter($array);

// 输出结果
print_r($filteredArray);
?>

输出结果将是:

Array
(
    [0] => 1
    [1] => 2
    [6] => hello
    [8] => world
)

在这个例子中,null""0false[] 都被移除了。

如果你只想移除空字符串、null 和空数组,可以使用自定义回调函数:

<?php
// 原始数组
$array = [1, 2, null, '', 0, false, 'hello', [], 'world'];

// 自定义回调函数
$filteredArray = array_filter($array, function($value) {
    return $value !== '' && $value !== null && $value !== [];
});

// 输出结果
print_r($filteredArray);
?>

输出结果将是:

Array
(
    [0] => 1
    [1] => 2
    [4] => 0
    [5] => false
    [6] => hello
    [8] => world
)

在这个例子中,只有空字符串、null 和空数组被移除了,而 0false 被保留了下来。

你可以根据具体需求调整回调函数的逻辑。