我有一个代码可以滚动一个随机数字,并根据获胜者的机会显示获胜者。
$data = array();
foreach($getAllUserTicketHistoryJson as $value){
$data[$value['user_id']] = number_format((float)($value['total_ticket'] / $getAllTicketRound * 100), 2, '.', '');
}
$array=$data;
function chance($input=array())
{
$number=rand(0,array_sum($input));
$starter=0;
foreach($input as $key => $val)
{
$starter+=$val;
if($number<=$starter)
{
$ret=$key;
break;
}
}
return 'Winner is '.$ret.'<br/>';
}
for($i=0;$i<3;$i++)
{
echo chance($array).'<br><br>';
}
这将给出如下输出。
Winner is 4
Winner is 3
Winner is 4
问题是,用户“4”在第一轮和最后一轮两次获胜。如何防止胜利者两次获胜?
以及如何将每个获胜者插入数据库?
我的数据库看起来像这样
=========================================
id | Round | first | Second | third
=========================================
1 | 1 | 4 | 3 | 1
=========================================
我想将每个获胜者插入数据库“第一”、“第二”和“第三”。所以中奖者ID不会加倍,防止重复。
请帮忙。
更改您的代码
for($i=0;$i<2;$i++)
{
chance($getAllUserTicketHistoryJson[rand(0,count($getAllUserTicketHistoryJson))]).'<br><br>';
}
function chance($arrWinner = array()){
// the array for winner is
echo "<pre> Winner array : ";
print_r($arrWinner);
echo "</pre>";
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)