【发布时间】:2019-01-07 14:50:30
【问题描述】:
我有这个数组代码
$data = array();
foreach($getAllUserTicketHistoryJson as $value){
$data[$value['user_id']] = number_format((float)($value['total_ticket'] / $getAllTicketRound * 100), 2, '.', '');
}
$array=$data;
这将给出输出
array(4) { [4]=> string(5) "16.28" [3]=> string(4) "5.81" [2]=> string(5) "11.63" [5]=> string(5) "66.28" }
数组为 user_id,获胜几率为 100%。
我想显示 3 个随机获胜者,而不重复第一个获胜者。意味着如果用户已经获胜,他们将无法再次获胜。
我创建了这段代码
$number=rand(0,array_sum($array));
$starter=0;
foreach($array as $key => $val)
{
$starter+=$val;
if($number<=$starter)
{
$ret=$key;
break;
}
}
for($i=0;$i<3;$i++)
{
echo 'Winner is '.$ret.'<br/>';
}
代码会给出输出
Winner is 5
Winner is 5
Winner is 5
问题是,如何在不重复第一个获胜者的情况下,根据他们的机会显示 3 个获胜者。结果应该是这样的
Winner is 4
Winner is 5
Winner is 2
谢谢你帮助我
【问题讨论】:
-
请勿转载。