Php 在所有数组'上使用`或`或`和`运算符;s布尔元素并返回结果
假设我们有一个数组:Php 在所有数组'上使用`或`或`和`运算符;s布尔元素并返回结果,php,Php,假设我们有一个数组: $input = [true, false, false, true, true]; 我需要的是在所有数组元素上返回或或和运算的布尔结果,因此: and($input); // false or($input); // true 我正在寻找一些内置的-不是循环或求和项目的解决方案 即无效方法: array_sum($input) > 0; “或”可以通过array\u filter实现,无需回调: $result_of_or = array_filter($i
$input = [true, false, false, true, true];
我需要的是在所有数组元素上返回或或和运算的布尔结果,因此:
and($input); // false
or($input); // true
我正在寻找一些内置的-不是循环或求和项目的解决方案
即无效方法:
array_sum($input) > 0;
“或”可以通过array\u filter
实现,无需回调:
$result_of_or = array_filter($input);
// result will be truthy if at least one element is true
// otherwise, result is empty array, which is falsy
“和”是个小把戏,但可以这样做:
$result_of_and = count(array_filter($input)) == count($input);
从本质上讲,它会删除任何错误值,然后确定是否删除了任何元素-如果没有,则它们都为真。“或”可以通过数组过滤器来实现,而无需回调:
$result_of_or = array_filter($input);
// result will be truthy if at least one element is true
// otherwise, result is empty array, which is falsy
$or = array_reduce($input, function ($result, $item) { return $result || $item; }, false);
$and = array_reduce($input, function ($result, $item) { return $result && $item; }, true);
“和”是个小把戏,但可以这样做:
$result_of_and = count(array_filter($input)) == count($input);
从本质上讲,它会删除任何虚假的值,然后确定是否删除了任何元素——如果没有,那么它们都是真的
$or = array_reduce($input, function ($result, $item) { return $result || $item; }, false);
$and = array_reduce($input, function ($result, $item) { return $result && $item; }, true);
这差不多是“内置”的
这差不多是“内置的”。虽然这是正确的,比我的答案“更合适”,但当我看到它时,我忍不住会想到“ew”xdpff,array reduction FTW!:PAh,同样,您希望初始值为false
,否则无论输入如何,|
都将为true。相反,使用true
作为&
操作的初始值。虽然这是正确的,并且比我的答案“更合适”,但当我看到它时,我忍不住会想到“ew”xdpff,array reduction FTW!:PAh,同样,您希望初始值为false
,否则无论输入如何,|
都将为true。相反,使用true
作为&
操作的初始值。