все побитовые значения массива вместе


У меня есть такой массив.

$a = array(
    1,
    2,
    4,
    // ...
    64,
    // go on ...
);

Я хочу вернуть

var_dump(1 | 2 | 4 | /* ... */ 64);

Http://codepad.org/AseDSGh6

Как я могу побитово распределить все значения в массиве?

Я нашел это , но это ограничение на количество значений.

Author: Community, 2013-08-11

2 answers

$a = array_reduce($a, function ($v, $w){ return $v | $w; });
 2
Author: User4407, 2013-08-11 09:14:58

Не можете ли вы выполнить итерацию по массиву? Как в этом примере:

$b = 0;
foreach($a as $value) {
  $b |= $value;
}
var_dump($b);
 2
Author: Pyrech, 2013-08-11 08:28:50