Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在所有数组'上使用`或`或`和`运算符;s布尔元素并返回结果_Php - Fatal编程技术网

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
作为
&
操作的初始值。