关于PHP问题,我准备用微信做个刮刮卡功能,怎样才能设定一天只能刮一次呢?求大神给点思路!

关于PHP问题,我准备用微信做个刮刮卡功能,怎样才能设定一天只能刮一次呢?求大神给点思路!,第1张

刮一次之后,获取当前时间,并把当前时间存入数据库中覆盖之前的时间,或者拼接在一起。下次刮之前,先将当前时间与数据库中最后一次时间多对比,大于24小时,然后才能刮。

不过,坦昌宴我想你应该是想实现一天一次,而不迅握是隔一天刮一次吧。这个不需要大于24小时,只要日期中的“日”不一样就行了,这些让银时间要从网络或者服务器获得,以防作弊。

php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法。用法很简单,代码里有详细注释说明,一看就懂

$proCur) {

$randNum = mt_rand(1, $proSum)

if ($randNum <= $proCur) {

$result = $key

break

} else {

$proSum -= $proCur

}

}

unset ($proArr)

return $result

}

/*

* 奖项数组

* 是一个二维数组,记录了所有本次抽奖的奖项信息,

* 其中id表示歼唯毕中奖等级,prize表示奖品,v表示中奖概率。

* 注意其中的v必须为整数,你可以将对应的 奖项的v设置成0,即意味着该奖项抽中的几率是0,

* 数组中v的总和(基数),基数越大越能体现概率的准确性。

* 本例中v的总和为100,那么平板电脑对应的 中奖山猛概率就是1%,

* 如果v的总氏芹和是10000,那中奖概率就是万分之一了。

*

*/

$prize_arr = array(

'0' =>array('id'=>1,'prize'=>'平板电脑','v'=>1),

'1' =>array('id'=>2,'prize'=>'数码相机','v'=>5),

'2' =>array('id'=>3,'prize'=>'音箱设备','v'=>10),

'3' =>array('id'=>4,'prize'=>'4G优盘','v'=>12),

'4' =>array('id'=>5,'prize'=>'10Q币','v'=>22),

'5' =>array('id'=>6,'prize'=>'下次没准就能中哦','v'=>50),

)

/*

* 每次前端页面的请求,PHP循环奖项设置数组,

* 通过概率计算函数get_rand获取抽中的奖项id。

* 将中奖奖品保存在数组$res['yes']中,

* 而剩下的未中奖的信息保存在$res['no']中,

* 最后输出json个数数据给前端页面。

*/

foreach ($prize_arr as $key =>$val) {

$arr[$val['id']] = $val['v']

}

$rid = get_rand($arr)//根据概率获取奖项id

$res['yes'] = $prize_arr[$rid-1]['prize']//中奖项

unset($prize_arr[$rid-1])//将中奖项从数组中剔除,剩下未中奖项

shuffle($prize_arr)//打乱数组顺序

for($i=0$i


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12536652.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存