这篇文章主要介绍“php代码如何实现红包功能”,在日常操作中,相信很多人在php代码如何实现红包功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php代码如何实现红包功能”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
php代码实现红包功能的方法:1、通过distribute_red_bages方法实现拼手气红包;2、通过average_red_bages方法实现均分红包;3、通过rob_red_bages方法实现规定红包数。
本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑
php代码怎么实现红包功能?
PHP 红包功能代码
前段时间被问这个问题,最近有空就写写啦,还是挺有趣的
首先做下抢红包方法分类:
对于发红包的人来说,一共有大致3类(其他的我暂时没想到,有想到可以联系我呀~)
一、拼手气红包个数不定(完全看运气)
二、拼手气红包规定个数(个数一定,至少一分)
三、平均分红包(个数一定,大家平分)还是这个好写是吧!嘿嘿
上代码:
<?phpvar_dump(rob_red_bages(5 , 10));var_dump(distribute_red_bages(5));function distribute_red_bages($sum){ $sum = $sum*100; $i=0; while($sum>0){ $temp = rand(1 , $sum);//红包值 $sum -= $temp; $arr[$i++] = $temp/100; } //check($arr); return $arr;}function average_red_bages($sum , $num){ $res = $sum/$num; for($i=0 ; $i<$num ; $i++){ $arr[$i] = $res; } //check($arr); return $arr;}function rob_red_bages($sum , $num){ $sum = $sum*100; for($i=0 ; $i<$num ; $i++){ $temp = rand(1 , $sum); $arr[$i] = $temp; $sumall += $temp; } $k = $sum/$sumall; for($i=0 ; $i<sizeof($arr); $i++){ $arr2[$i] = $arr[$i]*$k/100; } return $arr2;}function check($arr){ foreach($arr as $a){ $sum += $a; echo $a."+"; } echo " 0 =".$sum."\n";}?>
下面分析下拼手气红包吧(平分的就不说了,大家都会):
拼手气红包个数不定思路:(总金额:sum)
---->随机第一个小于sum的数: n
---->总金额减去该数: temp = sum-n
---->随机一个小于temp的数
---->递归上述方法直到总金额为0
---->返回存储随机结果的数组
这个方法比较常规,用来实现规定个数的红包也是可以实现的!不过~
拼手气红包规定个数思路(总金额 sum,红包个数 num )
---->随机num个小于sum的数,生成数组
---->对这些数求和得到allsum
---->用sum除以allsum得到所有生成数的公倍数
---->数组每个元素与公倍数相乘得到每个红包的的数值
这个方法有缺点(最终的结果可能会略大于sum,或者略小于sum 因为除法可能出现无理数)
到此,关于“php代码如何实现红包功能”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!