您好,欢迎访问一九零五行业门户网

微信红包算法

微信红包算法
/**生成红包的函数*/ 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; }
其它类似信息

推荐信息