Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 是否有更好的方法从数组中过滤NULL、false和空字符串(并保留零)?_Php_Arrays_Filter - Fatal编程技术网

Php 是否有更好的方法从数组中过滤NULL、false和空字符串(并保留零)?

Php 是否有更好的方法从数组中过滤NULL、false和空字符串(并保留零)?,php,arrays,filter,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[]

我想从数组中过滤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
)

有什么想法吗?

您可以使用php内置函数array\u 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
)

这应该会有帮助。

检查数组过滤器功能: