我们举一些例子:
array("Paul", "", "Daniel") // false
array("Paul", "Daniel") // true
array("","") // false
Run Code Online (Sandbox Code Playgroud)
什么是解决此功能的巧妙方法?
Jac*_*och 28
尝试使用in_array:
return !in_array("", array("Paul", "", "Daniel")); //returns false
Run Code Online (Sandbox Code Playgroud)
use*_*291 23
答案取决于你如何定义"空"
$contains_empty = count($array) != count(array_filter($array));
Run Code Online (Sandbox Code Playgroud)
$contains_empty = count($array) != count(array_filter($array, "strlen"));
Run Code Online (Sandbox Code Playgroud)
要仅检查空字符串(请注意第三个参数):
$contains_empty = in_array("", $array, true);
Run Code Online (Sandbox Code Playgroud)
因此array_filter()将从数组中删除空元素,然后返回该数组。
将返回的数组与原始数组进行比较不会相同。
表示数组包含一个或多个空元素。
$array = array("Paul", "", "Daniel");
if($array != array_filter($array)) {
echo "Array contains empty values.";
}
Run Code Online (Sandbox Code Playgroud)
function has_empty(array $array)
{
return count($array) != count(array_diff($array, array('', null, array())));
}
Run Code Online (Sandbox Code Playgroud)