1

有没有办法检查数组中的所有元素在 PHP 中是否为空?

例如,我有一个数组array(null,null,null,null)- 有没有办法检查这种情况?

我正在寻找一种更好的方法,而不仅仅是遍历整个数组并检查每个元素。

4

5 回答 5

8

完成这项工作的另一种简单方法是使用该max()函数。

max(array( 3, 4, null, null  ) )      # is 4
max(array( null, null, null, null)    # is null

因此,您可以发出简单的if( is_null(max($array)) ) { ... }呼叫。

于 2012-04-03T19:48:58.727 回答
3

试试这个:

$nulls = array(null,null,null,null,null,null,null,null);
var_dump(array_unique($nulls) === array(null)); // prints true
于 2012-04-03T19:50:37.320 回答
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))如果你想要相反的。

于 2012-04-03T19:50:08.710 回答
1
if ($arr && count(array_filter($arr, 'is_null')) === count($arr)) {
   echo "Array is all NULLs\n";
}

只有当 的所有元素$arr都是 NULL 时,才会调用 echo。

于 2020-01-08T23:16:10.957 回答
-1

您可以使用array_filter()

像这样:

$nulls = array(null,null,null,null,null);
if(count(array_filter($nulls)) == 0){
  echo "all null (or false)";
}

不知道您对这个数组的期望是什么,但这与空值混为一谈......

于 2012-04-03T19:46:46.900 回答