微信红包和抽奖代码分享

浏览:4661 发布日期:2016/04/07 分类:系统代码 关键字: 微信红包 PHP
具体思路是,定义总钱数和人数,然后最小值为默认0.01元,然后进行循环,设置安全值是为了让后面的人都能拿到钱。仅自己尝试,有需求的可自己深入研究
微信红包代码:<?php
02
        // 微信红包算法
03
         header("content-type:text/html;charset=utf-8");
04
        $sum = 10;  //总价钱
05
        $num = 8 ;  //人数
06
        $min = 0.01;    //最少值
07
        for($i=1;$i<$num;$i++){
08
            $row = ($sum-($num-$i)*$min)/($num-$i);// 安全值
09
            $money = mt_rand($min*100,$row*100)/100;
10
            $sum -= $money;
11
            echo '第'.$i.'人,领取'.$money.'元,剩下'.$sum.'元<br/>';
12
        }
13
        echo '第'.$num.'人,领取'.$sum.'元,剩下'.$sum.'元';
14
    ?>
抽奖代码<?php
02
        // 抽奖
03
     header("content-type:text/html;charset=utf-8");
04
        function get_rand($arr){
05
            $arr_sum = array_sum($arr);
06
            $arr_rand = mt_rand(1,$arr_sum);
07
            foreach($arr as $key => $arr_num){
08
                $arr_sum -= $arr_num;
09
                if($arr_rand>$arr_sum){
10
                    return $key;
11
                }
12
            }
13
        }
14
        $p = array(
15
            '0' => array('id'=>1,'info'=>'一等奖','v'=>1),
16
            '1' => array('id'=>2,'info'=>'二等奖','v'=>5),
17
            '2' => array('id'=>3,'info'=>'三等奖','v'=>10),
18
            '3' => array('id'=>4,'info'=>'四等奖','v'=>34)
19
            );
20
        foreach($p as $key => $value){
21
            $arr[$value['id']] = $value['v'];
22
        }
23
        $rid = get_rand($arr);
24
        $res['yes'] = $p[$rid-1]['info'];
25
        unset ($p[$rid-1]) ;
26
        shuffle ($p);
27
        for($i=0;$i<count($p);$i++){
28
            $pr[]= $p[$i]['info'];
29
        }
30
        $res['no'] = $pr;
31
        var_dump($res);
32
    ?>
评论( 相关
后面还有条评论,点击查看>>