PHP可变比例可变范围随机红包算法

PHP技术交流QQ群:490910618

产生金额范围在$min~$max之间,金额所占比例为n1:n2:n3: ... :nm红包

$min = 0.87;    //红包范围
$max = 8.7;
$inputs = "1:2:2";    //读取页面所传参数,产生金额比例为1:2:2的红包份数
$rate = explode(':',$inputs); 
$apart = count($rate);
$between = round(($max-$min)/$apart,2);
$arr = array('0' => array('left' => $min, 'right' => $min+$between));
for($i=1;$i<$apart;$i++){
    $arr[$i]['left'] = $arr[$i-1]['right']+0.01;
    $arr[$i]['right'] = $arr[$i-1]['right'] + $between;
}
$rate_arr = array();
$num = 1;
foreach ($rate as $key => $value) {
    $temp = $value;
    while ($temp > 0) {
        array_push($rate_arr, $num);
        $temp--;
    }
    $num++;
}
$x_index = array_rand($rate_arr, 1);
$x_figure = $rate_arr[$x_index];
for($i=1;$i<=$apart;$i++){
    if($x_figure==$i){
        //执行语句,传递参数$arr[$i-1](该参数为sql语句产生红包的范围,在数据库中直接随机生成该范围内的红包金额即可)
    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值