有没有更好的方法从数组中过滤NULL,false和空字符串(并留下ZERO)?

时间:2015-02-02 10:52:13

标签: php arrays filter

我想从数组中过滤NULL,false和空字符串,但不是零值。这是我的代码,但它完全没有工作:

$array = array(1,2,3, "Test", NULL, 0, '', false);
$result = array();
foreach($array as $key=>$value){
    if(!empty($value) && !is_null($value) && false !== $value){
        $result[] = $value;
    }

}

print_r($result);

输出应为

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

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

你可以使用php内置函数array_filter()和strlen()来解决这个问题。 php.net上有一个很好的参考:

$array = array(1,2,3, "Test", NULL, 0, '', false);
$result = array_filter($array, 'strlen');
print_r($result);

对我来说,结果是:

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

这应该有所帮助。