php 随机数中奖demo演示

 感谢https://blog.csdn.net/z960339491/article/details/69511491提供的思路,应该是java,于我不合适,写了php

<?php
// 中奖概率的百分比的百
$a = 100;
// 中奖基数最小值
$min = 1;
// 中奖基数最大值
$max = 10000;
// 下标记录,因为从最小值开始,所以为$min
$index = $min;
// 假定有如下商品
$arr[] = array("name"=>"商品1","gailv"=>5);
$arr[] = array("name"=>"商品2","gailv"=>10);
$arr[] = array("name"=>"商品3","gailv"=>15);
$arr[] = array("name"=>"商品4","gailv"=>20);
$arr[] = array("name"=>"商品5","gailv"=>50);

// 循环为奖品数组附加中奖基数区间值
foreach($arr as $k=>$v){
    $jian = $max*$v['gailv']/$a;
    $arr[$k]['begin'] = $index;
    $arr[$k]['end'] = $index+$jian-1;
    $index = $index+$jian;
}
// 输出商品列表信息
// var_dump($arr);

// 得到一个随机数,起始值为基数的最小和最大值
$jiang = rand($min,$max);

// 记录中奖商品下标
$jiang_index = false;
// 循环对比随机数位于哪个商品的区间基数内
foreach ($arr as $k => $v) {
    if($jiang>=$v['begin'] && $jiang<=$v['end']){
        $jiang_index = $k;
        break;
    }
}

// 判断中奖商品
if($jiang_index==false){
    echo "谢谢参与";
}else{
    echo $arr[$jiang_index]['name'];
}

?>
原文地址:https://www.cnblogs.com/zonglonglong/p/9488077.html