Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.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按位数组_Php_Arrays_Function_Bit Manipulation - Fatal编程技术网

php按位数组

php按位数组,php,arrays,function,bit-manipulation,Php,Arrays,Function,Bit Manipulation,如果我有一个标志数组,我想将它们与一个位连词组合起来 即: 进入 PHP有什么好函数可以很好地为我实现这一点吗?你可以这样做 $bar = $foo[0] | $foo[1] 如果数组的大小未知,可以这样使用 // in php > 5.3 $values = array_reduce($flagArray, function($a, $b) { return $a | $b; }); // in php <= 5.2 $values = array_reduce($flagArr

如果我有一个标志数组,我想将它们与一个位连词组合起来

即:

进入


PHP有什么好函数可以很好地为我实现这一点吗?

你可以这样做

$bar = $foo[0] | $foo[1]
如果数组的大小未知,可以这样使用

// in php > 5.3
$values = array_reduce($flagArray, function($a, $b) { return $a | $b; });
// in php <= 5.2
$values = array_reduce($flagArray, create_function('$a, $b', 'return $a | $b'));
//在php>5.3中
$values=array_reduce($flagArray,function($a,$b){返回$a |$b;});
//在php中
PHP<5.3(无闭包),以下两种情况之一:

function _mybitor($a,$b){return is_null($a) ? $b : $a | $b;}
$values = array_reduce($foo,'_mybitor');

))

将数组缩减为单个值:

$res = array_reduce($array, function($a, $b) { return $a | $b; }, 0);

Reduce在其他语言中有时也被称为fold(向左折叠或向右折叠)。

对的一个简单建议是:创建一个与
数组\u sum
同级的数组

function array_or (array $array): int {
    return array_reduce($array, function($a, $b) { return $a | $b; }, 0);
  }
function _mybitor($a,$b){return is_null($a) ? $b : $a | $b;}
$values = array_reduce($foo,'_mybitor');
$values = array_reduce($foo,create_function('$a,$b','return is_null($a) ? $b : $a | $b;'));
$res = array_reduce($array, function($a, $b) { return $a | $b; }, 0);
function array_or (array $array): int {
    return array_reduce($array, function($a, $b) { return $a | $b; }, 0);
  }