PHP抽奖代码

<?php
    //配置奖项数组
    $arr_prize = array(
            array('id'=>1,'prize'=>'iphone7','v'=>1),
            array('id'=>2,'prize'=>'平板电脑','v'=>10),
            array('id'=>3,'prize'=>'100元红包','v'=>15),
            array('id'=>4,'prize'=>'50元红包','v'=>24),
            array('id'=>5,'prize'=>'很遗憾没有中奖','v'=>50)
        );
    //抽奖算法
    function get_rand($arr)
    {
        $result = '';

        $sum = array_sum($arr);

        foreach ($arr as $key => $value) 
        {
            $r = mt_rand(1,$sum);
            if($r <= $value)
            {
                $result = $key;
                break;
            }else
            {
                $sum -= $value;
            }       
        }
        unset($arr);
        return $result;
    }
    //抽奖
    foreach ($arr_prize as $key => $value) 
    {
         $arr[$value['id']] = $value['v'];
    }
    $id = get_rand($arr);
    $res['yes'] = $arr_prize[$id-1]['prize'];
    unset($arr_prize[$id-1]);//把中奖项删除
    shuffle($arr_prize); //打乱数组顺序 
    for($i=0;$i<count($arr_prize);$i++){ 
        $pr[] = $arr_prize[$i]['prize']; 
    } 
    $res['no'] = $pr;
    var_dump($res);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • http://blog.jobbole.com/19262/
    上街买菜丶迷倒老太阅读 1,339评论 0 0
  • 1.php更新代码(20161210)更新:更新基础工程 学习php有一段时间,一直没有整理代码,从这一章起将为...
    大兵哥_bigboy阅读 2,999评论 0 0
  • PHP早期是函数式风格编程,代码的自由度很高,也比较容易理解记忆,今天带大家简单的编写几行PHP代码,我会尽量用直...
    头场雪阅读 4,363评论 0 4
  • Clean Code PHP github地址 目录 介绍 变量使用见字知意的变量名同一个实体要用相同的变量名使用...
    code_nerd阅读 3,251评论 0 3
  • 《人类简史》是过去的历史,《未来简史》,不能说是历史,只能说是未来的可能,前两部分都是在说过去,是第一本书的补充,...
    木鱼飞阅读 1,072评论 0 0