如何检查多维数组中的所有值是否为空

时间:2013-11-15 02:11:57

标签: php arrays multidimensional-array array-reduce

我有一个表单将多维数组发布到我的PHP脚本中,我需要知道数组中的所有值是否为空。

这是我的阵列:

$array[] = array('a'=>'',
                 'b'=>array('x'=>''),
                 'c'=>array('y'=>array('1'=>'')),
                 'd'=>'');

我尝试使用array_reduce(),但它只是返回一个数组:

echo array_reduce($array, "em");

function em($a,$b){
    return $a.$b;
}

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

我注意到这已经闲置了一段时间,这是一个非常有效的自定义功能。

function emptyArray($array) {
  $empty = TRUE;
  if (is_array($array)) {
    foreach ($array as $value) {
      if (!emptyArray($value)) {
        $empty = FALSE;
      }
    }
  }
  elseif (!empty($array)) {
    $empty = FALSE;
  }
  return $empty;
}

如果数组中的所有项都为空,则该函数将返回true,但如果数组中的一个项不为空,则该函数将返回false。

用法:

if (emptyArray($ARRAYNAME)) {
  echo 'This array is empty';
}
else {
  echo 'This array is not empty';
}