Maison  >  Article  >  php教程  >  生成微信红包

生成微信红包

大家讲道理
大家讲道理original
2016-11-08 13:33:491447parcourir

生成微信红包

/**
 * @param $total [你要发的红包总额]
 * @param int $num [发几个]
 * @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[&#39;MoneySum&#39;] = $wamp;
    $returnData[&#39;newTotal&#39;] = 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
)*/


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn