PHP+SQL Shuffle结果来自一个表并保存到另一个表

PHP+SQL Shuffle结果来自一个表并保存到另一个表,php,mysql,sql,shuffle,Php,Mysql,Sql,Shuffle,我必须用PHP编写脚本,对玩家ID进行洗牌、配对并保存到另一个表中 从第一个表中,我使用简单的SQL查询获取播放器ID: SELECT id FROM table1 它给了我例如ID为1、2、3、4、5的结果 现在我的问题开始了 我必须洗牌SQL结果以获得例如结果2、5、4、1、3 然后我需要在洗牌后配对玩家ID,如下所示: first row - first player with second player second row - second player with third pla

我必须用PHP编写脚本,对玩家ID进行洗牌、配对并保存到另一个表中

从第一个表中,我使用简单的SQL查询获取播放器ID:

SELECT id FROM table1
它给了我例如ID为1、2、3、4、5的结果

现在我的问题开始了

我必须洗牌SQL结果以获得例如结果2、5、4、1、3

然后我需要在洗牌后配对玩家ID,如下所示:

first row - first player with second player
second row - second player with third player
third row - third player with fourth player
fourth row - fourth player with fifth player
fifth row - fifth player with first player
在SQL表2中,if应如下所示:

2-5
5-4
4-1
1-3
3-2
我要找的是: 1.用玩家ID洗牌sql结果的方法 2.从洗牌结果配对结果的方法
3.将其保存到表2的方法是使用shffle。它所做的是取下你的数组并洗牌。然后您可以按顺序使用每个数组

范例

array1
[1]
[2]
[3]
[4]

array2
[1]
[2]
[3]
[4]

 $array3 = shuffle($array2);

array3 
[2]
[1]
[4]
[3]
然后循环通过它们

for($i=0;$i<4;i++){
    echo $array1[$i] .' vs '. $array3[$i];
}

好的,我发现:

$result=mysql_query("SELECT id FROM table1");

$numbers=array();

    while ($result_data = mysql_fetch_row($result)) 
    {
      array_push($numbers, $result_data[0]);
    }

shuffle($numbers);
$numbers2 = $numbers;
array_unshift( $numbers2, array_pop( $numbers2 ) );


for($i=0;$i<count($numbers);$i++){
    echo $numbers2[$i].' vs '.$numbers[$i] . '<br />';
}

到目前为止,你尝试了什么?对于步骤1,您可以在查询中使用RAND-从表1中选择id ORDER BY RAND。对于第2步和第3步,显示您的代码尝试。使用此方法,您偶尔会得到1v1或2v2,或者需要执行$array3=shuffle$array2;我刚刚修正了密码。刷新。另外,以下是相关文档: