微信红包算法.php


/**生成红包的函数*/
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;
}

最新文章

  1. MySQL数据库和InnoDB存储引擎文件
  2. Struts2入门(七)——Struts2的文件上传和下载
  3. Java高级规范之二
  4. WTF Forms – 使用 CSS 实现用户体验更好的表单
  5. 微信支付redirect_uri参数错误
  6. WSDL 文档解析
  7. *MySQL卸载之后无法重装,卡在Apply security settings:Error Nr.1045
  8. 如何调试libc++abi.dylib handler threw exception错误
  9. Unity monodev环境搭建
  10. Mongodb在Windows下安装及配置 【转】
  11. java构造方法的不同
  12. sql表连接的几种方式
  13. Cocos2d-x CCTableView实现列表
  14. Angular1.x使用小结
  15. Python Django 1.Hello Django
  16. Netty自定义协议解析原理与应用
  17. Android 最简单的测试UI卡顿
  18. Mybatis的原理与JVM内存结构(面试题)
  19. P5290 [十二省联考2019]春节十二响
  20. Mysql数据库异常

热门文章

  1. 03-----Bootstrap的介绍
  2. 3305: Hero In Maze II (优先队列+bfs)
  3. [备忘]java 静态块、非静态块、静态函数、构造函数 执行顺序
  4. kickstart2019 round_A B. Parcels
  5. JS中关于clientWidth offsetWidth scrollWidth 等的区别
  6. 【干货】JavaScript DOM编程艺术学习笔记10-12【完】
  7. Unicode字符集
  8. @Enable*注解的工作原理
  9. 报错:'byte' does not name a type
  10. 笔记 Activator.CreateInstance(Type)