php生成指定个数的随机红包解决办法

内容摘要
这篇文章主要为大家详细介绍了php生成指定个数的随机红包简单示例,具有一定的参考价值,可以用来参考一下。

对php生成指定个数的随机红包简单示例对此感兴趣的朋友,看看idc笔
文章正文

这篇文章主要为大家详细介绍了php生成指定个数的随机红包简单示例,具有一定的参考价值,可以用来参考一下。

对php生成指定个数的随机红包简单示例对此感兴趣的朋友,看看idc笔记做的技术笔记!

/**
 * 
 * @param 
 * @arrange (www.idcnote.com)
 **/

$total=20;//红包总金额   
$num=10;// 分成10个红包,支持10人随机领取   
$min=0.01;//每个人最少能收到0.01元   
 $redpack = new redpack($total,$num,$min);
 $jieguo = $redpack->getPack();
 foreach($jieguo as $key=>$val){
     $n = $key+1;
     echo '第'.$n.'个红包:'.$val['money'].' 元,余额:'.$val['balance'].' 元<br>';   
 }
 
class redpack{
    //总金额
    private $total=0;
    //红包数量
    private $num=0;
    //最小红包金额
    private $min=0.01;
     
    public function __construct($total,$num,$min)
    {
        $this->total = $total;
        $this->num = $num;
        $this->min = $min;
    }
    //红包结果
    public function getPack()
    {
        $total = $this->total;
        $num = $this->num;
        $min = $this->min;
        for ($i=1;$i<$num;$i++)   
        {   
            $safe_total=($total-($num-$i)*$min)/($num-$i);//随机安全上限   
            $money=mt_rand($min*100,$safe_total*100)/100;   
            $total=$total-$money;  
            //红包数据
            $readPack[]= [
                'money'=>$money,
                'balance'=>$total,
            ];
        }
        //最后一个红包,不用随机       
        $readPack[] = [
            'money'=>$money,
            'balance'=>0,
        ];
        //返回结果
        return $readPack;
    }
     
}

注:关于php生成指定个数的随机红包简单示例的内容就先介绍到这里,更多相关文章的可以留意

代码注释

作者:喵哥笔记

IDC笔记

学的不仅是技术,更是梦想!