首頁  >  文章  >  後端開發  >  php怎麼實現抽獎

php怎麼實現抽獎

藏色散人
藏色散人原創
2022-12-19 10:10:035874瀏覽

php實現抽獎的方法:1、建立一個php範例檔案;2、定義獎金池擁有的獎品;3、透過「shuffle($prize);」方法進行隨機抽獎;4、使用「print_r( $prize[0]);」列印抽獎結果即可。

php怎麼實現抽獎

本教學操作環境:windows10系統、PHP8.1版、DELL G3電腦

php怎麼實現抽獎?

PHP實現抽獎系統的範例程式碼

一、隨機抽獎

#隨機抽獎當然是最公平的抽獎,就是當用戶抽獎時隨機返回抽獎結果

這種結果完全隨機,不受人為控制,中獎全憑藉運氣

先定義獎池擁有的獎品,用戶進來抽獎後,隨機返回獎池中的獎品

<?php
$prize = [&#39;60寸大彩电&#39;, &#39;iphone13&#39;, &#39;戴森吸尘器&#39;, &#39;索尼微单&#39;, &#39;VR眼镜&#39;, &#39;谢谢参与&#39;];
 
// 当有用户进来抽奖,进行随机抽奖
shuffle($prize);
 
// 抽奖结果
print_r($prize[0]);

二、機率抽獎

機率抽獎,其實就是給獎品設定機率,一般高價值的獎品會設定中獎的機率極低

這種抽獎也是隨機抽獎的一種,但是並沒有上面那種沒有概率控制的隨機抽獎

抽中特等獎是需要極大的運氣成分的,大多數人都會抽獎價值低的獎品

<?php
$prize = [
    [&#39;name&#39; => &#39;60寸大彩电&#39;, &#39;chance&#39; => 100],
    [&#39;name&#39; => &#39;iphone13&#39;, &#39;chance&#39; => 900],
    [&#39;name&#39; => &#39;戴森吸尘器&#39;, &#39;chance&#39; => 1000],
    [&#39;name&#39; => &#39;索尼微单&#39;, &#39;chance&#39; => 2000],
    [&#39;name&#39; => &#39;VR眼镜&#39;, &#39;chance&#39; => 3000],
    [&#39;name&#39; => &#39;谢谢参与&#39;, &#39;chance&#39; => 3000]
];
 
// 概率重组
$chance = 0;
foreach ($prize as &$item) {
    $chance += $item[&#39;chance&#39;];
    $item[&#39;chance&#39;] = $chance;
}
 
// 随机抽奖
$rand = mt_rand(1, 10000);
 
$result = [];
foreach ($prize as $_k => $_v) {
    if ($_k == 0) {
        if ($rand > 0 && $rand <= $_v[&#39;chance&#39;]) {
            $result = $_v;
            break;
        }
    } else {
        if ($rand > $prize[$_k - 1][&#39;chance&#39;] && $rand <= $_v[&#39;chance&#39;]) {
            $result = $_v;
            break;
        }
    }
}
 
// 抽奖结果
echo json_encode(compact(&#39;rand&#39;, &#39;result&#39;));

三、內定抽獎

內定抽獎是年會常用的抽獎方式,公司為了獎勵那些本年度為公司做過重大貢獻的人

選擇在年會上將指定獎品透過抽獎的方式送給那些人

不僅能夠給那些人帶來鼓勵,更多的是為了加強公司凝聚力

這種抽獎模式,早先已經將獎品和內定人做了綁定

只有當指定的人進來才可以抽到獎品,其他人都是謝謝參與,但是用戶卻不知道這種是內定的

<?php
$prize = [
    [&#39;name&#39; => &#39;60寸大彩电&#39;, &#39;winners&#39; => [&#39;张三&#39;]],
    [&#39;name&#39; => &#39;iphone13&#39;, &#39;winners&#39; => [&#39;李四&#39;, &#39;王五&#39;]],
    [&#39;name&#39; => &#39;戴森吸尘器&#39;, &#39;winners&#39; => [&#39;亮仔&#39;]],
    [&#39;name&#39; => &#39;索尼微单&#39;, &#39;winners&#39; => [&#39;李六&#39;]],
    [&#39;name&#39; => &#39;VR眼镜&#39;, &#39;winners&#39; => [&#39;小明&#39;]]
];
 
// 开始抽奖,这里假如亮仔过来抽
// 这里的用户也可以是用户唯一标识
$user = &#39;亮仔&#39;;
 
$result = &#39;谢谢参与&#39;;
foreach ($prize as $item) {
    if (in_array($user, $item[&#39;winners&#39;])) {
        $result = $item[&#39;name&#39;];
        break;
    }
}
 
print_r(&#39;获得的奖品:&#39; . $result);

推薦學習:《PHP影片教學

以上是php怎麼實現抽獎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn