- /**生成红包的函数*/
- function getRandMoney($totalMoney, $totalPeople=2, $miniMoney=1){
- $randRemainMoney = $totalMoney - $totalPeople * $miniMoney;//剩余需要随机的钱数
- return _getRandMoney($randRemainMoney, $totalPeople, $miniMoney);
- }
- /**红包生成的逻辑代码*/
- function _getRandMoney($totalMoney, $totalPeople, $miniMoney){
- $returnMessage = array('status'=>1, 'data'=>NULL);
- if($totalMoney > 0){
- $returnMessage['data'] = _randMoney($totalMoney, $totalPeople, $miniMoney);
- }elseif($totalMoney == 0){
- $returnMessage['data'] = array_fill(0, $totalPeople, 1);
- }else{
- $returnMessage['status'] = -1;
- $returnMessage['data'] = '参数传递有误,生成红包失败';
- }
- return $returnMessage;
- }
- /*参数无误,开始生成对应的红包金额*/
- function _randMoney($totalMoney, $totalPeople, $miniMoney){
- $data = array_fill(0, $totalPeople, $miniMoney);
- if($totalPeople > 1){
- foreach($data as $k => $v){
- if($k == $totalPeople -1){
- $data[$k] = $totalMoney + $v;
- break;
- }else {
- if($totalMoney == 0) break;
- $randMoney = rand(0, $totalMoney);
- $totalMoney -= $randMoney;
- $data[$k] = $randMoney + $v;
- }
- }
- }
- return $data;
- }
- //该片段来自于http://www.codesnippet.cn/detail/0508201614900.html
来源: http://www.codesnippet.cn/detail/0508201614900.html