有没有比这更简单的方法?找出所有数组值是否为空的简单方法?
$isArrayEmpty = true;
foreach ($array as $value) {
if (!empty($value)) {
$isArrayEmpty = false;
}
}
似乎有点多余。
有没有比这更简单的方法?找出所有数组值是否为空的简单方法?
$isArrayEmpty = true;
foreach ($array as $value) {
if (!empty($value)) {
$isArrayEmpty = false;
}
}
似乎有点多余。
不,这不是多余的。这是完全合法的方式。这段代码没什么不好。只需添加break
即可。
我甚至会说你目前的做法是最好的,只是保持它。
频繁使用,你可以在一个功能
$isArrayEmpty = empty(array_filter($array));
编辑 正如评论指出,上述表达式将无法正常工作 - 它会抛出一个致命的错误。这是因为empty
可变量etarion在我的回答同样的精神提出了正确的答案只能操作,而不是一个函数的返回值(或语言结构)
所以是:
$isArrayEmpty = !array_filter($array);
这里的使用array_reduce
做的一种方式:
$isArrayEmpty = array_reduce($array, function($acc, $e) { return $acc && empty($e); }, true);
$foo = implode('', $array);
$isArrayEmpty = empty($foo);
把它包起来你就不能......
if(empty($array)) { //do this }
当我在一些文件中看到这样的代码,我会疑惑它有什么作用。只写代码令人厌恶 – 2011-01-28 08:57:00
@ Col.Shrapnel:好吧,你永远不会看到它,因为它不会工作。 `empty`对变量进行操作,而不是表达式。但是,`$ isArrayEmpty =! array_filter($ array);`是完全有效的,如果你对它做了什么感到困惑,你应该查看array_filter是做什么的,因为它是为了这个确切目的而做的。 – etarion 2011-01-28 09:12:44