首頁 > 後端開發 > php教程 > php實作紅包功能程式碼

php實作紅包功能程式碼

小云云
發布: 2023-03-21 09:16:01
原創
2662 人瀏覽過

本文主要和大家分享php實現的紅包功能,主要以程式碼的形式和大家分享,由於是第一寫紅包對紅包不是太了解,希望能幫助到大家。

for ($i=1; $i < $p; ++$i) { 
	$s2 = ($sum - ($p - $i) * 0.01)/($p - $i);  
	//echo $s2;die;
    $money = rand(1,$s2*100);
    $money = number_format($money/100,2,&#39;.&#39;,&#39;,&#39;); 
	$sum = $sum - $money;
	$wamp[$i] = $money;
	
}
   //format_number(要转换的浮点数,要分隔的符号)
   echo "<hr/>";
   echo "<pre class="brush:php;toolbar:false">";
    print_r($wamp);
    echo "<pre class="brush:php;toolbar:false">";


}
//echo 2;
登入後複製

可以基本上實現紅包功能主要說說思想 

場景有個同學群裡面有50個同學為了慶祝聚會要發紅包 

首先要求每個人必須領到紅包  並且每個人領到紅包機率基本上相同 

那麼每個人領到紅包機率   =   (紅包現有的金額- (目前沒領到紅包人數) * 每人最少領到紅包的金額) / 目前沒領到紅包人數

 $safe_total  每個人領到紅包機率     $total   紅包現有的金額    $min      ($total - ($num - $i) * $min) / ($num - $i);

#代碼不唯一   重要的是思想 

下面是參考代碼

function getRedGift($total, $num = 10)
{
$min = 0.01;
$wamp = array();
$returnData = array();
for ($i = 1; $i < $num; ++$i) {
$safe_total = ($total - ($num - $i) * $min) / ($num - $i); //红包金额的最大值    为了是大部分个人获得的红包金额一定
if ($safe_total < 0) break;
$money = @mt_rand($min * 100, $safe_total * 100) / 100;//随机产生一个红包金额
$total = $total - $money;//剩余红包总额
$wamp[$i] = round($money, 2);//保留两位有效数字
}
$wamp[$i] = round($total, 2);
$returnData[&#39;MoneySum&#39;] = $wamp;
$returnData[&#39;newTotal&#39;] = array_sum($wamp);
return $returnData;
}
//测试
$data = getRedGift(100, 10);
echo "<pre class="brush:php;toolbar:false">";


print_r($data);


echo "<pre class="brush:php;toolbar:false">";
登入後複製

相關推薦:

PHP開發微信現金紅包功能代碼分享

##PHP隨機紅包的功能實作

#php實作拼手氣紅包函數

以上是php實作紅包功能程式碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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