首頁 > php教程 > PHP源码 > 主體

生成指定个数的随机红包

PHP中文网
發布: 2016-05-26 08:18:33
原創
1268 人瀏覽過

指定红包金额,最小红包金额和红包个数就可以自动生成

[PHP]代码   

<?php
$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 &#39;第&#39;.$n.&#39;个红包:&#39;.$val[&#39;money&#39;].&#39; 元,余额:&#39;.$val[&#39;balance&#39;].&#39; 元<br>&#39;;   
 }

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[]= [
				&#39;money&#39;=>$money,
				&#39;balance&#39;=>$total,
			];
		}
		//最后一个红包,不用随机		
		$readPack[] = [
			&#39;money&#39;=>$money,
			&#39;balance&#39;=>0,
		];
		//返回结果
		return $readPack;
	}
	
}
登入後複製

                   

                   

相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板