use*_*841 7 php arrays boolean-logic
我有一个数组,我想知道它中是否至少有一个假值.我正在考虑创建一个array_and()函数,它只对所有元素执行逻辑AND.如果所有值都为真,则返回true,否则返回false.我是否过度工程?
Gor*_*don 12
你为什么不用
in_array - 检查数组中是否存在值例:
// creates an array with 10 booleans having the value true.
$array = array_fill(0, 10, TRUE);
// checking if it contains a boolean false
var_dump(in_array(FALSE, $array, TRUE)); // FALSE
// adding a boolean with the value false to the array
$array[] = FALSE;
// checking if it contains a boolean false now
var_dump(in_array(FALSE, $array, TRUE)); // TRUE
Run Code Online (Sandbox Code Playgroud)
如果所有值都为 true,则返回 true,否则返回 false。
如果数组非空且不包含 false 元素,则返回 true:
function array_and(arary $arr)
{
return $arr && array_reduce($arr, function($a, $b) { return $a && $b; }, true));
}
Run Code Online (Sandbox Code Playgroud)
(请注意,如果您想针对该false类型进行测试,则需要严格比较。)
我是否过度设计了?
是的,因为你可以使用:
in_array(false, $arr, true);
Run Code Online (Sandbox Code Playgroud)