Home  >  Article  >  Backend Development  >  How to implement lottery in php

How to implement lottery in php

藏色散人
藏色散人Original
2022-12-19 10:10:035868browse

php method to implement lottery: 1. Create a php sample file; 2. Define the prizes owned by the prize pool; 3. Conduct random lottery through the "shuffle($prize);" method; 4. Use "print_r( $prize[0]);" Just print the lottery results.

How to implement lottery in php

The operating environment of this tutorial: windows10 system, PHP version 8.1, DELL G3 computer

How to implement lottery with php?

Sample code for PHP to implement lottery system

1. Random lottery

Random lottery is of course the fairest lottery, that is, when the user The lottery results are randomly returned during the lottery.

This result is completely random and is not under human control. Winning depends entirely on luck.

Define the prizes in the prize pool first. After the user enters the lottery, the prizes in the prize pool will be returned randomly. Prizes

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

2. Probability lottery

Probability lottery is actually to set the probability for the prize. Generally, high-value prizes will have a very low probability of winning

This kind of lottery is also A type of random lottery, but there is no random lottery without probability control like above

Winning the grand prize requires a lot of luck, and most people will draw prizes with low value

<?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;));

3. Definite lottery draw

The default lottery draw is a commonly used lottery method at annual meetings. In order to reward those who have made significant contributions to the company this year, the company chooses to give designated prizes at the annual meeting. Giving them to those people through lottery

can not only bring encouragement to those people, but also to strengthen the company's cohesion

In this lottery model, the prizes have been previously assigned to the designated persons Binding

Only when the designated person comes in can the prize be drawn. Others thank you for participating, but the user does not know that this is the default choice

<?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);

Recommended learning:《

PHP video tutorial

The above is the detailed content of How to implement lottery in php. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn