生成微信紅包

清華大佬耗費三個月吐血整理的幾百G的資源,免費分享!....>>>

生成微信紅包
/**
 * @param $total [你要發(fā)的紅包總額]
 * @param int $num [發(fā)幾個]
 * @return array[生成紅包金額]
 */
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['MoneySum'] = $wamp;
    $returnData['newTotal'] = array_sum($wamp);
    return $returnData;
}
//測試
$data = getRedGift(100, 10);
print_r($data);
//result:
/*
Array
(
    [1] => 8.7
    [2] => 10.09
    [3] => 6.23
    [4] => 6.87
    [5] => 0.47
    [6] => 3.12
    [7] => 7.52
    [8] => 12.21
    [9] => 20.53
    [10] => 24.26
)*/