微信红包金额分配案例

时间:2015-11-12 17:33:13   收藏:0   阅读:276
<?php
// 本类由系统自动生成,仅供测试用途
class IndexAction extends Action {
    /*
    微信红包的总额有100元,必须要发送给60个用户,
    每个用户领取的红包是随机的,且每个用户领取的金额不得大于2元
    **/
    public function index(){
        $total =100;//100元
        $amount = 60;//60人
        $baseCash = 0.1;//基础值
        $arr = $this->assign_money($total,$amount,$baseCash);
        dump($arr);
        dump(array_sum($arr)); //array_sum() 函数返回数组中所有值的总和
    }
    /*array_fill() 函数用给定的值填充数组,
    返回的数组有 number 个元素,值为 value。
    返回的数组使用数字索引,
    从 start 位置开始并递增。
    如果 number 为 0 或小于 0,
    就会出错。*/
    public function assign_money($total,$amount,$baseCash){
        $arr = array_fill(0,$amount,$baseCash);
        $total=floor($total - $amount*$baseCash);
        while($total>0){ //只要指定条件为真,则循环代码块
            $lucky =rand(0,$amount-1);//返回0~59之间的随机整数
            if($arr[$lucky]<2){
                $arr[$lucky]+=$baseCash;
                $total = round($total - $baseCash,1);//对浮点数进行四舍五入,保留一位小数点
            }
        }
        return $arr;
    }
}

?>

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!