我有以下数组
$array = array(
1=>"a",
2=>"b",
4=>"c",
8=>"d",
16=>"e"
);
那么我有以下数字$var = 12;这个数字来自上面数组中的键的和。(显然$var是变化的)
我如何找到实际创建$var的键?
在示例中:
12 = array key 4 + array key 8
二进制数。魔法XD
$array = array(1=>"a",2=>"b",4=>"c",8=>"d",16=>"e");
$results = array();
$num = 12;
foreach($array as $i=>$v) {
if( $num & $i) $results[$i] = $v;
}
// in this case, you get $results = array(4=>"c",8=>"d");