sql >> Databáze >  >> RDS >> Mysql

Jak mohu vygenerovat kruhový turnaj v PHP a MySQL?

Vytvořil jsem funkci roundrobin od nuly, protože jsem si myslel, že by mohlo být snazší získat stejné výsledky a také mi to umožňuje používat pole vyplněná řetězci přímo místo čísel.

Protože vytáhnu seznam jmen z databáze a přidám do pole, mohu to nyní naplánovat přímo pomocí níže uvedené funkce. Není potřeba žádný další krok k propojení čísel se jmény atd.

Neváhejte to zkusit a pokud to funguje, zanechte komentář. Mám také verzi, která umožňuje dvoucestný plán (domů a návrat) nebo možnost náhodného přehrávání. Pokud má někdo o to zájem, zanechte také komentář.

<?php

/**
 * @author D.D.M. van Zelst
 * @copyright 2012
 */

function scheduler($teams){
    if (count($teams)%2 != 0){
        array_push($teams,"bye");
    }
    $away = array_splice($teams,(count($teams)/2));
    $home = $teams;
    for ($i=0; $i < count($home)+count($away)-1; $i++){
        for ($j=0; $j<count($home); $j++){
            $round[$i][$j]["Home"]=$home[$j];
            $round[$i][$j]["Away"]=$away[$j];
        }
        if(count($home)+count($away)-1 > 2){
            array_unshift($away,array_shift(array_splice($home,1,1)));
            array_push($home,array_pop($away));
        }
    }
    return $round;
}
?>

Jak používat, například vytvořit pole jako:

<?php $members = array(1,2,3,4); ?>

nebo

<?php $members = array("name1","name2","name3","name4"); ?>

pak zavolejte funkci a vytvořte svůj rozvrh na základě výše uvedeného pole:

<?php $schedule = scheduler($members); ?>

Chcete-li zobrazit výsledný plán pole, jednoduše postupujte takto nebo jakkoli chcete:Tento malý kód zobrazí plán v pěkném formátu, ale použijte jej, jak chcete.

<?php
foreach($schedule AS $round => $games){
    echo "Round: ".($round+1)."<BR>";
    foreach($games AS $play){
        echo $play["Home"]." - ".$play["Away"]."<BR>";
    }
    echo "<BR>";
}
?>

Zanechte poznámku, zda vám to fungovalo, nebo pokud máte zájem o dvoucestnou verzi s náhodným výběrem.



  1. Proč heslo password_verify vrací hodnotu false?

  2. Migrace vašeho klastru Cassandra

  3. Ovladač PDO MySQL pro Mac

  4. 12 Doporučené postupy zabezpečení MySQL/MariaDB pro Linux