我正在对访问函数建模,该函数应该基于嵌套数组中的下一个结构返回布尔值,该结构仅包含布尔值:
例如,我有以下预期结果的数组:
array(TRUE) -> TRUE
array(FALSE) -> FALSE
显然...
array(TRUE, FALSE) -> TRUE
因为TRUE | 错误的
array(TRUE, array(FALSE)) -> TRUE
因为TRUE | (错误的)
array(FALSE, array(FALSE, TRUE)) -> FALSE
由于FALSE | (FALSE && TRUE)
array(FALSE, array(TRUE, array(FALSE, TRUE))) -> TRUE
由于FALSE | (是&&(否|是)。)
我在这里所做的只是在嵌套数组的每个其他级别上更改比较方法。
PHP语言示例将是不错的选择,但是我可以转移到PHP的任何原型都可以作为答案。
这是使用array_reduce函数的相互递归的示例
do_or
将OR
运算符应用于整个数组do_and
将AND
运算符应用于整个数组代码:
function do_or($x,$y)
{
if (is_array($y))
{
if (empty($y))
{$y=FALSE;}
else
{$y=array_reduce($y,"do_and",TRUE);}
}
return $x||$y;
}
function do_and($x,$y)
{
if (is_array($y))
{
if (empty($y))
{$y=TRUE;}
else
{$y=array_reduce($y,"do_or",FALSE);}
}
return $x && $y;
}
$answer=array_reduce($arr,"do_or",FALSE);
这段代码可以优化,但是我想它可以说明这个想法
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句