我有以下数组
$array = array(
1=>"a",
2=>"b",
4=>"c",
8=>"d",
16=>"e"
);
然后我有以下数字$ var = 12;这个数字来自上面数组中的键的总和。 (显然$ var改变了。)
如何找到实际创建$ var的键。
在示例中:
12 = array key 4 + array key 8
希望我很清楚...
答案 0 :(得分:1)
二进制数。 Magic 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");