I am in a project, whose I need to generate a table of a football championship, where everyone plays against everyone, but when I generate up to 4 teams, the wheels are generated perfectly, when I generate 10 teams for example, give wheel trouble.
$times = array('Time1','Time2','Time3','Time4','Time5','Time6','Time7','Time8','Time9','Time10'); //Array de Times
$qtde_times = count($times); // Quantidade de Times
$num_rodadas = $qtde_times - 1; //numero de rodadas
$times_por_rodada = 2 * (int) ($qtde_times / 2);
$casa = array(); //guarda os jogos de quem joga em casa
$fora = array(); // guarda os jogos de quem joga fora
$jogos = array(); // guarda os jogos no final
$jogos_temp = array(); //array temporário, verifica quem já jogou em cada rodada
for ($i = 0; $i < $qtde_times; $i++) { //For para caminhar entre os times
for ($j = $i; $j < $qtde_times; $j++) { //For para caminha entre os adversários
if ($times[$i] != $times[$j]) { //verifica pra não deixar jogar um time contra ele mesmo
if ($j % 2 == 0) { //if pra ver quem joga em casa ou fora
$casa[] = $times[$i];
$fora[] = $times[$j];
} else {
$casa[] = $times[$j];
$fora[] = $times[$i];
}//fim do if / else de jogar em casa ou fora
}// verifica se é diferente pra poder fazer o confronto
}// fim do for que caminha entre os adversários
}// fim do for que verifica os times
//parte que verifica quem já jogou em qual rodada
for ($rodada = 0; $rodada < $num_rodadas; $rodada++) {
for ($t = 0; $t < count($casa); $t++) {
if (($casa[$t] != "") and ((in_array($casa[$t], $jogos_temp)) == false) and (((in_array($fora[$t], $jogos_temp)) == false))) {
$jogos_temp[] = $casa[$t];
$jogos_temp[] = $fora[$t];
$casa[$t] = "";
$fora[$t] = "";
}
}
$jogos["Rodada: " . ($rodada + 1)] = $jogos_temp;
$jogos_temp = array();
}
for ($rod = 0; $rod < $num_rodadas; $rod++) {
echo "Rodada: " . ($rod + 1) . "<br />";
for ($jog = 0; $jog < $times_por_rodada; $jog+=2) {
echo $jogos["Rodada: " . ($rod + 1)][$jog] . " x " . $jogos["Rodada: " . ($rod + 1)][($jog + 1)] . "<br />";
}
echo "<br />";
}
Could anyone tell me what I can be doing to resolve this?