Mohol by si sa rozhodnúť, čo vlastne chceš? Vygenerovanie kôl a štvoríc sa musí urobiť úplne inak, takže ak to niekto urobí a ty si to potom rozmyslíš, predpokladám, že budeš mať smolu.
Každopádne tu sú kolá. Ak to budeš chcieť prerobiť na štvorice, budeme sa musieť dohodnúť na cene.

Kód: Vybrať všetko
<?php
$players = array(
array('id' => 5, 'name' => "hrac 1"),
array('id' => 8, 'name' => "hrac 2"),
array('id' => 13, 'name' => "hrac 3"),
array('id' => 27, 'name' => "hrac 4"),
array('id' => 28, 'name' => "hrac 5"),
array('id' => 36, 'name' => "hrac 6"),
array('id' => 39, 'name' => "hrac 7")/*,
array('id' => 40, 'name' => "hrac 8")*/);
if (count($players) % 2 != 0) array_push($players, array('id' => 0));
$players_count = count($players);
$matches_per_round = (int)($players_count / 2);
$rounds_count = $matches_per_round * 2 - 1;
$rounds = array();
for ($i = 0; $i < $rounds_count; $i++) {
$round = array();
for ($j = 0; $j < $matches_per_round-1; $j++) {
$p1 = $i+(2*$j+1);
if($p1 >= $players_count - 1) $p1 = $p1-$rounds_count;
$p2 = $i-2*$j - 1;
if ($p2 < 0) $p2 = $p2 + $rounds_count;
$round[] = array($p1, $p2);
}
$round[] = array($i, $players_count - 1);
$rounds[] = $round;
}
echo "Pocet kol: 2x", $rounds_count, "<br>\nPocet zapasov v kole: ", $matches_per_round, "<br>\n";
for ($i = 0; $i < count($rounds); $i++) {
echo "<h2>" . ($i+1) . ". kolo</h2>\n";
foreach ($rounds[$i] as $match) {
if ($players[$match[0]]['id'] == 0) {
echo $players[$match[1]]['name'], "<br>";
} else if ($players[$match[1]]['id'] == 0) {
echo $players[$match[0]]['name'], "<br>";
} else {
echo $players[$match[0]]['name'], " - ", $players[$match[1]]['name'], "<br>";
}
}
}
echo "<h1>Odvety</h1>\n";
for ($i = 0; $i < count($rounds); $i++) {
echo "<h2>" . ($i+1) . ". kolo</h2>\n";
foreach ($rounds[$i] as $match) {
if ($players[$match[0]]['id'] == 0) {
echo $players[$match[1]]['name'], "<br>";
} else if ($players[$match[1]]['id'] == 0) {
echo $players[$match[0]]['name'], "<br>";
} else {
echo $players[$match[1]]['name'], " - ", $players[$match[0]]['name'], "<br>";
}
}
}
?>
Ber to tak, že je to len polotovar. Budeš to musieť upraviť podľa toho, ako ti funguje tá tvoja stránka (a teda, možno tam budeš potrebovať tabuľku, kam si to rozlosovanie uložíš a teda sa ten algoritmus bude musieť mierne zmeniť...).