我有一个带有布尔值的数组,例如对布尔数组值执行逻辑操作
$myarray = array(true, false, false, true, false);
现在我想在我的阵列值执行一些逻辑运算,所以我得到的输出:从我的阵列
FALSE
。
我有一个带有布尔值的数组,例如对布尔数组值执行逻辑操作
$myarray = array(true, false, false, true, false);
现在我想在我的阵列值执行一些逻辑运算,所以我得到的输出:从我的阵列
FALSE
。
你可以试试这个:
$res = true;
foreach ($myarray as $item) $res &= $item;
echo var_dump($res);
少了几分优雅,但它应该工作。最后你会得到一个整数,因为我们在这里使用位逻辑,可以改进。
对于OR
情况下,你可以做几乎同样的事情:
$res = true;
foreach ($myarray as $item) $res |= $item;
echo var_dump($res);
感谢您的解决方案 – Nabi
你试图把布尔字符串,这是根本错误的。你想要的是,例如,一个阵列减少:
$res = array_reduce($myarray, function ($a, $b) { return $a && $b; }, true);
// default value ^^^^
或者更有效的短路all
功能:
function all(array $values) {
foreach ($values as $value) {
if (!$value) {
return false;
}
}
return true;
}
if (all($myarray)) ...
感谢您的解决方案 – Nabi
你可以只搜索您的阵列false
,如果它是目前,返回false
,如果没有返回true
:
$result = (array_search(false, $myarray, true) === false);
由于您编辑了您的问题,如果您希望它返回0或1,请执行以下操作:
$result = (array_search(false, $myarray, true) === false) ? 1 : 0;
感谢您的解决方案 – Nabi
您应该在这里得到什么样的结果? – Maximus2012
为什么var_dump(),然后回显var_dump()返回的结果? –
有趣的,这里也提到:http://php.net/manual/en/function.implode.php#104568 – dchayka