对布尔数组执行按位运算

时间:2011-02-11 10:46:33

标签: php arrays bitwise-operators

在PHP中有一种很好的方法可以在这样的数组上运行各种测试...

array(true, false, true, false, false);

说给我所有这些元素的 AND 结果或 OR 结果?

很好,我的意思是建造而不需要每次都围绕结构。

2 个答案:

答案 0 :(得分:5)

您可以使用(bool) array_sum($array)获取OR结果,使用(bool) array_product($array)获取AND结果。

这是有效的,因为PHP处理布尔值和整数的方式(零是false,其他一切都是true),以及逻辑(或按位)OR如何与加法相关联,而逻辑(或按位)AND与乘法相关联。

答案 1 :(得分:0)

您可以implode数组并在其上执行binary to decimal。 然后你只需要对结果做Switch来做不同的标志所代表的内容。

那是因为你的bool数组基本上是一个5位二进制值。

你可能需要在内爆后将一些前导零填充到8位数值,然后将其转换为十进制值,因为bin2dec很有趣。