找出所有数组值是否为空的简单方法?

时间:2011-01-28 08:32:59

标签: php

有比这更简单的方法吗?

$isArrayEmpty = true;
foreach ($array as $value) {
    if (!empty($value)) {
        $isArrayEmpty  = false;
    }
}

似乎有点多余。

5 个答案:

答案 0 :(得分:6)

<德尔> $isArrayEmpty = empty( array_filter( $array ) );

修改 如评论中所述,上述表达式不起作用 - 它将引发致命错误。这是因为empty只能对变量进行操作,而不能对函数(或语言结构)的返回值进行操作

因此,etarion以我的答案的同一精神提出了正确答案:

$isArrayEmpty = !array_filter( $array );

答案 1 :(得分:1)

以下是使用array_reduce执行此操作的一种方法:

$isArrayEmpty = array_reduce($array, function($acc, $e) { return $acc && empty($e); }, true);

答案 2 :(得分:1)

不,这不是多余的。这是完全合法的方式。这段代码没什么不好的。只需添加break即可。

我甚至会说你现在的方法是最好的,只要保留它。
对于频繁使用,您可以将其包装在函数

答案 3 :(得分:0)

$foo = implode('', $array);
$isArrayEmpty = empty($foo);

答案 4 :(得分:-1)

你能不能......

if(empty($array)) {  //do this  }