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 相关文章推荐
PHP4与PHP3中一个不兼容问题的解决方法
Oct 09 PHP
PHP Document 代码注释规范
Apr 13 PHP
PHP zlib扩展实现页面GZIP压缩输出
Jun 17 PHP
PHP 验证码不显示只有一个小红叉的解决方法
Sep 30 PHP
ThinkPHP使用smarty模板引擎的方法
Jul 01 PHP
正确的PHP匹配UTF-8中文的正则表达式
May 13 PHP
PHP生成plist数据的方法
Jun 16 PHP
php中array_multisort对多维数组排序的方法
Jun 21 PHP
thinkphp3.x中cookie方法的用法分析
May 19 PHP
php四种定界符详解
Feb 16 PHP
PHP生成腾讯云COS接口需要的请求签名
May 20 PHP
PHP重载基础知识回顾
Sep 10 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
MOTOROLA 摩托罗拉 MODEL 66-XI五灯中波收音机
2021/03/02 无线电
php实现上传图片保存到数据库的方法
2015/02/11 PHP
PHP判断密码强度的方法详解
2017/05/26 PHP
PHP多种序列化/反序列化的方法详解
2017/06/23 PHP
索趣科技的答案
2007/02/07 Javascript
js通过googleAIP翻译PHP系统的语言配置的实现代码
2011/10/17 Javascript
JS数组合并push与concat区别分析
2015/12/17 Javascript
微信页面倒计时代码(解决safari不兼容date的问题)
2016/12/13 Javascript
js时间戳格式化成日期格式的多种方法介绍
2017/02/16 Javascript
JavaSctit 利用FileReader和滤镜上传图片预览功能
2017/09/05 Javascript
VUE路由动态加载实例代码讲解
2019/08/26 Javascript
Vue如何获取数据列表展示
2019/12/11 Javascript
javascript设计模式 ? 观察者模式原理与用法实例分析
2020/04/22 Javascript
python中关于时间和日期函数的常用计算总结(time和datatime)
2013/03/08 Python
零基础学Python(一)Python环境安装
2014/08/20 Python
图文讲解选择排序算法的原理及在Python中的实现
2016/05/04 Python
浅谈python迭代器
2017/11/08 Python
python使用opencv按一定间隔截取视频帧
2018/03/06 Python
浅析Python数据处理
2018/05/02 Python
Django中更改默认数据库为mysql的方法示例
2018/12/05 Python
python sklearn库实现简单逻辑回归的实例代码
2019/07/01 Python
python3中利用filter函数输出小于某个数的所有回文数实例
2019/11/24 Python
使用PyOpenGL绘制三维坐标系实例
2019/12/24 Python
python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性
2020/02/25 Python
使用pymysql查询数据库,把结果保存为列表并获取指定元素下标实例
2020/05/15 Python
VSCode配合pipenv搞定虚拟环境的实现方法
2020/05/17 Python
python判断一个变量是否已经设置的方法
2020/08/13 Python
大码女装:Ulla Popken
2019/08/06 全球购物
大学军训感言800字
2014/02/27 职场文书
《中国梦我的梦》中学生演讲稿
2014/08/20 职场文书
“三支一扶”支教教师思想汇报
2014/09/13 职场文书
孕妇离婚协议书范本
2014/11/20 职场文书
《1942》观后感
2015/06/08 职场文书
《窃读记》教学反思
2016/02/18 职场文书
解决Django transaction进行事务管理踩过的坑
2021/04/24 Python
MYSQL主从数据库同步备份配置的方法
2021/05/26 MySQL