php生成指定个数的随机红包解决办法
内容摘要
这篇文章主要为大家详细介绍了php生成指定个数的随机红包简单示例,具有一定的参考价值,可以用来参考一下。
对php生成指定个数的随机红包简单示例对此感兴趣的朋友,看看idc笔
对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生成指定个数的随机红包简单示例的内容就先介绍到这里,更多相关文章的可以留意
代码注释