我有一个数组
$array = array("dresses","suits");
当我尝试使用phpredis制作BITOP时
$value = implode(",",$array);
$redis->bitOp('AND','color',$value);
echo $redis->bitcount('color');
我得到0.还试过
$value = "'".implode("','",$array)."'";
没有结果。但是当我做的时候
$redis->bitOp('AND','color','dresses','suits');
echo $redis->bitcount('color');
一切都很好。它给我30分
如何解决这个问题?
答案 0 :(得分:0)
您可以这样做:
foreach ($array as $item) {
$redis->bitOp('AND', 'color', 'color', $item);
}
想法是在每个位图和先前的结果(存储为颜色)之间进行按位运算。
这就是为什么 color 使用两次的原因,第一次是 return_key 参数,第二次是 bitmap_key 。