有没有办法检查数组中的所有元素在 PHP 中是否为空?
例如,我有一个数组array(null,null,null,null)
- 有没有办法检查这种情况?
我正在寻找一种更好的方法,而不仅仅是遍历整个数组并检查每个元素。
完成这项工作的另一种简单方法是使用该max()
函数。
max(array( 3, 4, null, null ) ) # is 4
max(array( null, null, null, null) # is null
因此,您可以发出简单的if( is_null(max($array)) ) { ... }
呼叫。
试试这个:
$nulls = array(null,null,null,null,null,null,null,null);
var_dump(array_unique($nulls) === array(null)); // prints true
array_filter
会工作:
function checkIsset($val) {
return isset($val);
}
$arr = array(null, null, null, ..., null);
$filteredArr = array_filter($arr, 'checkIsset');
if (count($filteredArr)) {
//not all null
} else {
//all null
}
或者if (empty($filteredArr))
如果你想要相反的。
if ($arr && count(array_filter($arr, 'is_null')) === count($arr)) {
echo "Array is all NULLs\n";
}
只有当 的所有元素$arr
都是 NULL 时,才会调用 echo。
您可以使用array_filter()
像这样:
$nulls = array(null,null,null,null,null);
if(count(array_filter($nulls)) == 0){
echo "all null (or false)";
}
不知道您对这个数组的期望是什么,但这与空值混为一谈......