如題,巧妙利用枚舉找出數組元素所在區間
如下從Redis獲取hash數據集,定位數據元素所在$coins_config對應的區間redis
ps:對於+=運算等,數組必須初始化,否則會報錯。數組
//登陸金幣 $coins_cofig = [0,3500,20000,30000,60000,100000,250000,500000,1000000,2500000]; $len = count($coins_cofig); //初始化計數 $num = []; $coins = []; for ($i=0; $i < $len; $i++) { $num[$i] = 0; $coins[$i] = 0; } $redis_hash_key = "***"; $data_coins = $redis->hgetall($redis_hash_key); //計算 foreach ($data_coins as $k => $v) { //$k => user_id, $v => coins for ($i=0; $i < $len; $i++) { $right = isset($coins_cofig[$i + 1]) ? $coins_cofig[$i + 1] : 0; if ($v >= $coins_cofig[$i] && $v < $right) { $num[$i]++; $coins[$i]+=$v; } } if ($v >= end($coins_cofig)) { $num[$len - 1]++; $coins[$len - 1]+=$v; } }