【年会必备】基于PHP的简易小程序抽奖
<?php
// 设置中奖号码,示例中为100以内的随机数
$lotteryNumber = rand(1, 100);
// 获取参与抽奖的用户数量
$participantsCount = 10; // 假设有10个参与者
// 设置奖项
$prizes = [
['name' => '特等奖', 'rate' => 1],
['name' => '一等奖', 'rate' => 3],
['name' => '二等奖', 'rate' => 6],
['name' => '三等奖', 'rate' => 10],
['name' => '四等奖', 'rate' => 10],
['name' => '五等奖', 'rate' => 20],
['name' => '六等奖', 'rate' => 30],
['name' => '未中奖', 'rate' => 30]
];
// 模拟抽奖过程
for ($i = 0; $i < $participantsCount; $i++) {
$randomNumber = rand(1, 100);
$prizeIndex = getPrizeIndex($randomNumber, $prizes);
echo "用户{$i}中奖,获得: " . $prizes[$prizeIndex]['name'] . "\n";
}
// 根据随机数和奖项设置规则,获取奖项索引
function getPrizeIndex($number, $prizes) {
$rates = array_column($prizes, 'rate');
$cumulativeRates = array_reduce($rates, function($carry, $item) {
return $carry + $item;
});
$temp = 0;
foreach ($prizes as $index => $prize) {
$temp += $prize['rate'];
if ($number <= $temp * $cumulativeRates / 100) {
return $index;
}
}
return count($prizes) - 1; // 默认返回最后一个奖项索引
}
这段代码模拟了一个抽奖过程,其中包含了抽奖号码的生成、中奖奖项的计算和中奖结果的输出。这个过程是按照奖项设置的概率来计算每个参与者是否中奖的。这个简易的抽奖程序可以作为年会活动的一部分,提高活动的趣味性和互动性。
评论已关闭