有没有办法检查数组中的所有元素在PHP中是否为空?
例如,我有一个数组array(null,null,null,null)
- 有没有办法检查这种情况?
我正在寻找一种更好的方法,而不仅仅是循环遍历整个数组并检查每个元素。
答案 0 :(得分:7)
另一种简单的方法是使用max()
函数。
max(array( 3, 4, null, null ) ) # is 4
max(array( null, null, null, null) # is null
因此,您可以发出简单的if( is_null(max($array)) ) { ... }
来电。
答案 1 :(得分:2)
试试这个:
$nulls = array(null,null,null,null,null,null,null,null);
var_dump(array_unique($nulls) === array(null)); // prints true
答案 2 :(得分:1)
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))
如果你想要反向。
答案 3 :(得分:0)
if ($arr && count(array_filter($arr, 'is_null')) === count($arr)) {
echo "Array is all NULLs\n";
}
仅当$arr
的所有元素均为NULL时,此函数才调用echo。
答案 4 :(得分:-1)
您可以使用array_filter()
$nulls = array(null,null,null,null,null);
if(count(array_filter($nulls)) == 0){
echo "all null (or false)";
}
不知道你对这个数组的期望是什么,但是这会使用空值...
进行虚假处理