具有 arbitrary/variable N 个值的数组的逻辑与函数
logic AND function on array with arbitrary/variable N values
我遇到了一个大问题。我有一个动态数组,它可能包含 0 到 N 之间的任何值(为简单起见,假设它们都是布尔值,例如 0 或 1)。当然,一旦一个数组是defined/read,值的个数就不是未知数了。而且,我可以在一开始就轻松排除两个微不足道的情况:0(空)和单值数组。
剩下的是一个数组中有 2 个以上的值,需要对所有这些值执行逻辑与运算。
例如:
$array = array
(
$a,
$b,
$c,
.
.
.
$n
);
$logical_function = $a && $b && $c && ... && $n;
这甚至可以在 PHP 中以某种方式完成吗?我知道如何从数组生成动态/可变变量名称,但我该如何编写 AND 部分函数?
谢谢
如果只有一个数组元素是false
,结果将为假。所以你可以在面对一个 false
:
时跳过检查其他元素
$result = true;
foreach($array as $arr)
{
if($arr)
$result = true;
else
{
$result = false;
break;
}
}
return $result;
这里:
function logicalAnd(array $arr)
{
$result = true;
foreach($arr as $element)
{
$result = $result && $element;
if (!$result) { return false; }
}
return $result
}
我遇到了一个大问题。我有一个动态数组,它可能包含 0 到 N 之间的任何值(为简单起见,假设它们都是布尔值,例如 0 或 1)。当然,一旦一个数组是defined/read,值的个数就不是未知数了。而且,我可以在一开始就轻松排除两个微不足道的情况:0(空)和单值数组。
剩下的是一个数组中有 2 个以上的值,需要对所有这些值执行逻辑与运算。
例如:
$array = array
(
$a,
$b,
$c,
.
.
.
$n
);
$logical_function = $a && $b && $c && ... && $n;
这甚至可以在 PHP 中以某种方式完成吗?我知道如何从数组生成动态/可变变量名称,但我该如何编写 AND 部分函数?
谢谢
如果只有一个数组元素是false
,结果将为假。所以你可以在面对一个 false
:
$result = true;
foreach($array as $arr)
{
if($arr)
$result = true;
else
{
$result = false;
break;
}
}
return $result;
这里:
function logicalAnd(array $arr)
{
$result = true;
foreach($arr as $element)
{
$result = $result && $element;
if (!$result) { return false; }
}
return $result
}