插件窝 干货文章 PHP如何删除数组中的null值?

PHP如何删除数组中的null值?

array null filteredArray 数组 750    来源:    2025-03-16

在PHP中,你可以使用多种方法来删除数组中的 null 值。以下是几种常见的方法:

方法1:使用 array_filter() 函数

array_filter() 函数可以过滤数组中的元素。默认情况下,它会移除所有值为 falsenull0''(空字符串)和 array()(空数组)的元素。

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

$filteredArray = array_filter($array);

print_r($filteredArray);

输出:

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

方法2:使用 array_filter() 并指定回调函数

如果你只想移除 null 值,而保留其他 false 值(如 0false),可以使用回调函数来精确控制过滤条件。

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

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

print_r($filteredArray);

输出:

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

方法3:使用 array_diff() 函数

array_diff() 函数可以计算数组的差集。你可以通过将数组与包含 null 的数组进行比较来移除 null 值。

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

$filteredArray = array_diff($array, [null]);

print_r($filteredArray);

输出:

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

方法4:使用 array_map()array_filter() 结合

如果你想要在过滤 null 值的同时对数组中的元素进行其他操作,可以使用 array_map()array_filter() 结合。

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

$filteredArray = array_filter(array_map(function($value) {
    return $value === null ? null : $value;
}, $array));

print_r($filteredArray);

输出:

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

总结

  • 如果你只想简单地移除 null 值,array_filter() 是最直接的方法。
  • 如果你需要更精确的控制,可以使用 array_filter() 并指定回调函数。
  • array_diff() 也是一种有效的选择,特别是当你需要移除多个特定值时。

根据你的具体需求选择合适的方法即可。