从 PHP 数组中删除 NULL、FALSE 和 '' -但不包括 0
2022-08-30 11:07:47
我想删除 和 值 。NULL
FALSE
''
我用过,但它也删除了' s。array_filter
0
有没有做任何我想做的事的功能?
array(NULL,FALSE,'',0,1) -> array(0,1)
我想删除 和 值 。NULL
FALSE
''
我用过,但它也删除了' s。array_filter
0
有没有做任何我想做的事的功能?
array(NULL,FALSE,'',0,1) -> array(0,1)
array_filter使用相同的比较运算符时应该可以正常工作。
$values = [NULL, FALSE, '', 0, 1];
function myFilter($var){
return ($var !== NULL && $var !== FALSE && $var !== '');
}
$res = array_filter($values, 'myFilter');
或者,如果您不想定义过滤函数,也可以使用匿名函数(闭包):
$res = array_filter($values, function($value) {
return ($value !== null && $value !== false && $value !== '');
});
如果您只需要数值,则可以使用is_numeric作为回调:示例
$res = array_filter($values, 'is_numeric');
从 http://php.net/manual/en/function.array-filter.php#111091 :
如果要删除 NULL、FALSE 和空字符串,但保留值为 0,则可以使用 strlen 作为回调函数:
array_filter($array, 'strlen');