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

时间:2012-04-03 19:42:34

标签: php arrays

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

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

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

5 个答案:

答案 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)";
}

不知道你对这个数组的期望是什么,但是这会使用空值...

进行虚假处理