PHP实现微信发红包程序


Posted in PHP onAugust 24, 2015

使用PHP发红包,当我们输入红包数量和总金额后,PHP会根据这两个值进行随机分配每个金额,保证每个人都能领取到一个红包,每个红包金额不等,就是要求红包金额要有差异,所有红包金额总额应该等于总金额。

查看演示                        下载源码

首先给大家分析下规律。

设定总金额为10元,有N个人随机领取:

N=1 第一个

则红包金额=X元;

N=2 第二个

为保证第二个红包可以正常发出,第一个红包金额=0.01至9.99之间的某个随机数。

第二个红包=10-第一个红包金额;

N=3 第三个

红包1=0.01至9.99之间的某个随机数

红包2=0.01至(10-红包1-0.01)的某个随机数

红包3=10-红包1-红包2

……

于是我们得到一个规律,在分配当前红包金额时,先预留剩余红白所需最少金额,然后在0.01至总金额-预留金额间取随机数,得到的随机数就是当前红包分配的金额。

实际应用中,程序先将红包金额分配好,即发红包时,红包个数以及每个红包的金额都分配好了,那么用户来抢红包时,我们随机给用户返回一个红包即可。

红包分配代码:

$total=20;//红包总金额 
$num=10;// 分成10个红包,支持10人随机领取 
$min=0.01;//每个人最少能收到0.01元 
for ($i=1;$i<$num;$i++) 
{ 
 $safe_total=($total-($num-$i)*$min)/($num-$i);//随机安全上限 
 $money=mt_rand($min*100,$safe_total*100)/100; 
 $total=$total-$money; 
 echo '第'.$i.'个红包:'.$money.' 元,余额:'.$total.' 元 '; 
}
echo '第'.$num.'个红包:'.$total.' 元,余额:0 元';

运行以上代码,会输出以下结果:

第1个红包,金额2.08元,余额17.92元

第2个红包,金额1.81元,余额16.11元

第3个红包,金额0.15元,余额15.96元

第4个红包,金额1.61元,余额14.35元

第5个红包,金额1.11元,余额13.24元

第6个红包,金额1.51元,余额11.73元

第7个红包,金额1.21元,余额10.52元

第8个红包,金额2.58元,余额7.94元

第9个红包,金额5.4元,余额2.54元

第10个红包,金额2.54元,余额0元

以上就是使用php实现微信发红包程序,希望对大家有所帮助,有需要源码的朋友,可以直接下载。

PHP 相关文章推荐
15种PHP Encoder的比较
Apr 17 PHP
php正则表达匹配中文问题分析小结
Mar 25 PHP
php解决约瑟夫环示例
Apr 09 PHP
浅谈PHP调用Webservice思路及源码分享
Jun 04 PHP
PHP+FFMPEG实现将视频自动转码成H264标准Mp4文件
Sep 24 PHP
Laravel框架学习笔记(一)环境搭建
Oct 15 PHP
php遍历目录方法小结
Mar 10 PHP
CodeIgniter针对lighttpd服务器URL重写的方法
Jun 10 PHP
php生成4位数字验证码的实现代码
Nov 23 PHP
Yii控制器中操作视图js的方法
Jul 04 PHP
ThinkPHP下表单令牌错误与解决方法分析
May 20 PHP
PHP CURL中传递cookie的方法步骤
May 09 PHP
php 利用socket发送HTTP请求(GET,POST)
Aug 24 #PHP
php实现递归的三种基本方式
Jul 04 #PHP
php析构函数的简单使用说明
Aug 24 #PHP
分享微信扫码支付开发遇到问题及解决方案-附Ecshop微信支付插件
Aug 23 #PHP
dvwa+xampp搭建显示乱码的问题及解决方案
Aug 23 #PHP
详细解读PHP的Yii框架中登陆功能的实现
Aug 21 #PHP
使用PHP进行微信公众平台开发的示例
Aug 21 #PHP
You might like
PHP函数常用用法小结
2010/02/08 PHP
PHP通过header实现文本文件下载的代码
2010/08/08 PHP
许愿墙中用到的函数
2006/10/07 Javascript
js 全兼容可高亮二级缓冲折叠菜单
2010/06/04 Javascript
用js写了一个类似php的print_r输出换行功能
2013/02/18 Javascript
通过js为元素添加多项样式,浏览器全兼容写法
2014/08/30 Javascript
JavaScript面对国际化编程时的一些建议
2015/06/24 Javascript
avalon js实现仿微博拖动图片排序
2015/08/14 Javascript
BootStrap日期控件在模态框中选择时间下拉菜单无效的原因及解决办法(火狐下不能点击)
2016/08/18 Javascript
JS匿名函数实例分析
2016/11/26 Javascript
使用AngularJS编写多选按钮选中时触发指定方法的指令代码详解
2017/07/24 Javascript
解决使用vue.js路由后失效的问题
2018/03/17 Javascript
AngularJS使用Filter自定义过滤器控制ng-repeat去除重复功能示例
2018/04/21 Javascript
mpvue写一个CPASS小程序的示例
2018/09/04 Javascript
详解element-ui中el-select的默认选择项问题
2019/08/02 Javascript
微信小程序全局变量的设置、使用、修改过程解析
2019/09/24 Javascript
Vue中使用matomo进行访问流量统计的实现
2019/11/05 Javascript
vue实现几秒后跳转新页面代码
2020/09/09 Javascript
[06:53]2018DOTA2国际邀请赛寻真——为复仇而来的Newbee
2018/08/15 DOTA
如何利用python制作时间戳转换工具详解
2018/09/12 Python
Python基础教程之异常详解
2019/01/10 Python
Python3.5 Pandas模块缺失值处理和层次索引实例详解
2019/04/23 Python
Python变量访问权限控制详解
2019/06/29 Python
安装PyInstaller失败问题解决
2019/12/14 Python
python 实现保存最新的三份文件,其余的都删掉
2019/12/22 Python
新版Pycharm中Matplotlib不会弹出独立的显示窗口的问题
2020/06/02 Python
Python模拟登录requests.Session应用详解
2020/11/17 Python
python 爬取小说并下载的示例
2020/12/07 Python
查找适用于matplotlib的中文字体名称与实际文件名对应关系的方法
2021/01/05 Python
Autopep8的使用(python自动编排工具)
2021/03/02 Python
摩顿布朗英国官方网上商店:奢华沐浴、身体和头发护理
2016/10/29 全球购物
荣耀俄罗斯官网:HONOR俄罗斯
2020/10/31 全球购物
YSL圣罗兰美妆俄罗斯官网:Yves Saint Lauret RU
2020/09/23 全球购物
C#如何调用Windows程序打开一个文档
2014/12/26 面试题
电子商务专业实习生自我鉴定
2013/09/24 职场文书
三八节标语
2014/06/27 职场文书