国瑞前端
当前位置: 后端 > Php > php抽奖程序_附源码

php抽奖程序_附源码

在日常维护的项目中,有时候就需要做活动,这个时候就需要抽奖了,今天给大家带来的是php抽奖程序,下面是一些分析的过程:
1、首先我们要获取php抽奖程序总的概率数
2、然后我们需要随机从1到php抽奖程序总概率数
3、我们在判断获取的随机数是否在小于等于(也就是说你随机的数是否在数组值得范围中比如数组为array(1,2,3,4,5,6)则随机出了一个数为3 3是存在array中 所以将键就赋给一个变量 ,如果随机一个数为 7了 那得减去这个范围 一直到能在数组中寻找到 $sum=$sum-$val 像这样(随机数为7 则7-1=6))数组中的值

步骤一

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function get_rand($arr)
{
    $result="";
    $sum=array_sum($arr);  //php抽奖程序获取总概率数
    foreach($arr as $key=>$val)
    {
        $rand=mt_rand(1,$sum);  
        //var_dump($val['xx']);
        //rad =7;
        //7-
       
        if($rand<=$val)//php抽奖程序获取的值是否在val中有
        {
            //随机的数小于等于了值
            $result=$key;
             break;
        }else{
            $sum=$sum-$val;
        }

    }
    return $result;
   
}

步骤二

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
oreach ($prize_arr as $key => $val) {
    $arr[$val['id']] = $val['v'];
}
 
$rid = getRand($arr); //根据概率获取奖项id
 
$res = $prize_arr[$rid-1]; //中奖项
$min = $res['min'];
$max = $res['max'];
if($res['id']==7){ //七等奖
    $i = mt_rand(0,5);
    $result['angle'] = mt_rand($min[$i],$max[$i]);
}else{
    $result['angle'] = mt_rand($min,$max); //随机生成一个角度
}
$result['prize'] = $res['prize'];
 
echo json_encode($result);

php抽奖程序步骤三

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
$prize_arr = array(
    '0' => array('id'=>1,'prize'=>'平板电脑','v'=>1),
    '1' => array('id'=>2,'prize'=>'数码相机','v'=>3),
    '2' => array('id'=>3,'prize'=>'音箱设备','v'=>6),
    '3' => array('id'=>4,'prize'=>'4G优盘','v'=>20),
    '4' => array('id'=>5,'prize'=>'10Q币','v'=>25),
    '5' => array('id'=>6,'prize'=>'下次没准就能中哦','v'=>50),
);

/*
 * php抽奖程序每次前端页面的请求,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<count($prize_arr);$i++){
    $pr[] = $prize_arr[$i]['prize'];
}
$res['no'] = $pr;
print_r($res);

这样我们这个php抽奖程序就基本做好了

php抽奖程序_附源码效果请猛戳此处:点击

php抽奖程序_附源码下载请猛戳此处:下载

下面给大家介绍两个目录:
国瑞前端目录
028是哪里的区号_028区号是哪里_028是哪个城市的区号

「梦想一旦被付诸行动,就会变得神圣,如果觉得我的文章对您有用,请帮助本站成长」

赞(40) 打赏

支付宝扫一扫打赏

微信扫一扫打赏

标签:

上一篇:

下一篇:

相关推荐

0 条评论关于"php抽奖程序_附源码"

最新评论

    暂无留言哦~~

博客简介

国瑞个人博客: https://www.huanggr.cn/,我们关注Web前端开发技术,web前端开发,移动前端开发,前端资讯,同时分享前端资源和工具等,期待你的参与,了解更多..

博主独立研发主题:

广告

广告

广告

广告

精彩评论

广告

站点统计

  • 文章总数: 334 篇
  • 草稿数目: 86 篇
  • 分类数目: 28 个
  • 独立页面: 5 个
  • 评论总数: 108 条
  • 链接总数: 10 个
  • 标签总数: 111 个
  • 注册用户: 176 人
  • 访问总量: 8,677,463 次
  • 最近更新: 2021年7月21日
服务热线:
 

 QQ在线交流

 旺旺在线