我开始学习,我正在制作一个家用fifa18杯的项目.我有一个问题,我不知道如何配对我所说的所有球员:Player1,Player2,Player3,Player4
=> P1 vs P2, P1 vs P3, P1 vs P4
=> P2 vs P3, P2 vs P4
=> P3 vs P4
Run Code Online (Sandbox Code Playgroud)
我使用牛顿公式n!/k!(n-k)!计算没有报复的比赛数量,并让所有球员进入$tab.
所以,现在,我的问题,我怎么配这个?
像这样,它不会重复和P1与P1的例子.
<?php
require("server/baza.php");
$przelacznik = 1;//$_POST['losuj'];
$zapytanie = "select nick from mecze";
if($przelacznik == 1){
$wynik = mysqli_query($polaczenie,$zapytanie);
$tab = array();
$n=0;
while($wiersz = mysqli_fetch_assoc($wynik)){
array_push($tab,$wiersz['nick']);
//$tab[] = $wiersz;
$n++;
}
$Nsilnia = 1;
$NKsilnia =1;
for ($i=1; $i<=$n; $i++) {
$Nsilnia *= $i;
}
for($j=1;$j<=($n-2);$j++){
$NKsilnia *= $j;
}
$ilosc_rozgrywek = ($Nsilnia)/(2*$NKsilnia);
}
?>
Run Code Online (Sandbox Code Playgroud)
小智 6
如果您将播放器存储在以下数组中:
$player = ['P1', 'P2', 'P3', 'P4'];
Run Code Online (Sandbox Code Playgroud)
你可以使用两个循环来配对所有可能的匹配,而不用复仇.
for ($i = 0; $i < count ($player); $i++) {
//set the start of the second loop to $i + 1
for ($j = $i + 1; $j < count ($player); $j++) {
echo $player[$i].' vs '.$player[$j];
}
}
Run Code Online (Sandbox Code Playgroud)
将输出:
// P1 vs P2
// P1 vs P3
// P1 vs P4
// P2 vs P3
// P2 vs P4
// P3 vs P4
Run Code Online (Sandbox Code Playgroud)