php怎么过滤数组中的空元素?

46次阅读
没有评论

PHP中,可以使用array_filter()函数过滤数组中的空元素。该函数可以过滤掉数组中满足指定回调函数条件的元素,如果没有指定回调函数,则默认过滤掉值等效于FALSE的元素,包括空字符串、0、数组等。

示例如下:

<?php
$arr = array('apple', '', 'banana', null, 'orange', false, 0, 'grape', array());
$arr = array_filter($arr, function($value) {
    return $value !== '' && $value !== null && $value !== false && $value !== 0 && $value !== array();
});
print_r($arr);
?>

输出结果为:

Array
(
    [0] => apple
    [2] => banana
    [4] => orange
    [7] => grape
)

示例中使用了匿名函数作为回调函数,判断数组元素是否为空。可以看到,经过过滤后只剩下了非空元素。

另外需要注意的是array_filter()会重新索引数组,可以使用array_values()函数重新索引数组。

完整代码如下:

<?php
$arr = array('apple', '', 'banana', null, 'orange', false, 0, 'grape', array());
$arr = array_filter($arr, function($value) {
    return $value !== '' && $value !== null && $value !== false && $value !== 0 && $value !== array();
});
$arr = array_values($arr);
print_r($arr);
?>
正文完
 
评论(没有评论)