首页 > 编程语言 > 详细

巧妙利用枚举找出数组元素所在区间

时间:2019-10-11 15:23:32      阅读:77      评论:0      收藏:0      [点我收藏+]

如题,巧妙利用枚举找出数组元素所在区间
以下从Redis获取hash数据集,定位数据元素所在$coins_config对应的区间

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;
    }
}

 

巧妙利用枚举找出数组元素所在区间

原文:https://www.cnblogs.com/jongty/p/11653826.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!