插件窝 干货文章 php怎么除去数组里的空值

php怎么除去数组里的空值

array filteredArray 函数 null 133    来源:    2025-03-16

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

默认情况下,array_filter()会移除所有值为falsenull0""(空字符串)、[](空数组)等的元素。如果你只想移除严格意义上的空值(即null),可以在回调函数中进行判断。

以下是几种常见的用法:

1. 移除所有空值(包括false0""[]等)

$array = [1, 2, null, '', 0, false, [], 'hello'];

$filteredArray = array_filter($array);

print_r($filteredArray);

输出:

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

2. 只移除null

$array = [1, 2, null, '', 0, false, [], 'hello'];

$filteredArray = array_filter($array, function($value) {
    return $value !== null;
});

print_r($filteredArray);

输出:

Array
(
    [0] => 1
    [1] => 2
    [3] => 
    [4] => 0
    [5] => 
    [6] => Array
        (
        )

    [7] => hello
)

3. 移除空字符串和null

$array = [1, 2, null, '', 0, false, [], 'hello'];

$filteredArray = array_filter($array, function($value) {
    return $value !== null && $value !== '';
});

print_r($filteredArray);

输出:

Array
(
    [0] => 1
    [1] => 2
    [4] => 0
    [5] => 
    [6] => Array
        (
        )

    [7] => hello
)

4. 移除空数组、空字符串和null

$array = [1, 2, null, '', 0, false, [], 'hello'];

$filteredArray = array_filter($array, function($value) {
    return $value !== null && $value !== '' && $value !== [];
});

print_r($filteredArray);

输出:

Array
(
    [0] => 1
    [1] => 2
    [4] => 0
    [5] => 
    [7] => hello
)

总结

  • array_filter() 是一个非常灵活的函数,可以根据需要自定义过滤条件。
  • 如果你只想移除null值,可以在回调函数中明确指定条件。
  • 如果你需要移除多种类型的空值,可以在回调函数中组合多个条件。

希望这些示例能帮助你更好地理解如何在PHP中去除数组中的空值。