随机分组两队Php Mysql

时间:2018-05-04 18:28:10

标签: php mysql random

我正构建一个游戏,用户加入游戏大厅,然后分成两个小组,然后回答问题。 但我有一个问题,除了团队随机客户之外的所有事情都已完成。 我希望在按下按钮时将用户分配给团队,这不是问题,我可以这样做。

问题在于制造团队。 现在我正在通过这行代码获取并显示当前用户

if($result = mysqli_query($link, $sql)){
    if(mysqli_num_rows($result) > 0){
        while($row = mysqli_fetch_array($result)){
            echo utf8_encode("<div><br>". $row["name"]. " <b>| Lag : </b><span>" . $row["team"] . "</span><br></div>"); // för namn osv 
            mysqli_close($link);
        }
    }
}
echo "";

我希望所有用户被随机分配到两个大型团队,因此我不能使用一个简单的随机用户,让用户有50/50的机会在一个或另一个团队中,因为有机会让团队非常不相等的。

当用户被分配到团队时,脚本将运行查询,为每个用户更新名为“团队”的列,然后游戏将开始。

如何才能按下按钮,代码会占用用户并将所有用户分成两个不同的团队? 这是用数组完成的,还是什么?我很无能为力!

团队尽可能平等是非常重要的。

我该怎么办? 我用javascript看过东西,但这不起作用。

澄清。

没有最多的球员,有两个球队。我将运行一个查询,将用户分配给数据库中的团队。

如果我遗漏了某些内容,或者需要更多信息,请告诉我!

1 个答案:

答案 0 :(得分:1)

一旦你获得了结果集中的列表玩家,就可以使用shuffle()函数对其进行混洗,然后将前半部分球员分配给球队1,将另一半球员分配给球队2

下面假设将有两支球队拥有偶数球员:

<?php

$players = array("Player 1","Player 2","Player 3","Player 4","Player 5","Player 6","Player 7","Player 8");

//Players list before shuffling
var_dump($players);
shuffle($players);

//Players list after shuffling
var_dump($players);

// Get number of players per team
$player_count = count($players);
$players_per_team = $player_count/2;

$teams = array_chunk($players,$players_per_team);

$team_1 = $teams[0];
$team_2 = $teams[1];

echo 'Team 1';
var_dump($team_1);

echo 'Team 2';
var_dump($team_2);