Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana saya bisa menghasilkan turnamen round robin di PHP dan MySQL?

Saya membuat fungsi roundrobin dari awal karena saya pikir mungkin lebih mudah untuk mendapatkan hasil yang sama dan juga memungkinkan saya untuk menggunakan array yang diisi dengan string secara langsung daripada angka.

Karena saya menarik daftar nama dari database dan menambahkannya ke dalam array, saya sekarang dapat menjadwalkannya secara langsung dengan fungsi di bawah ini. Tidak perlu langkah ekstra untuk menautkan nomor ke nama dll.

Silakan mencobanya dan jika berhasil tinggalkan komentar. Saya juga memiliki versi yang memungkinkan jadwal 2 arah (pulang &pulang) dan atau opsi acak. Jika seseorang tertarik dengan yang itu, tinggalkan komentar juga.

<?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;
}
?>

Cara menggunakan, misalnya membuat array seperti:

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

atau

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

lalu panggil fungsi untuk membuat jadwal Anda berdasarkan array di atas:

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

Untuk menampilkan jadwal array yang dihasilkan cukup lakukan seperti di bawah ini atau apa pun yang Anda suka:Kode kecil ini menampilkan jadwal dalam format yang bagus tetapi gunakan sesuka Anda.

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

Tinggalkan catatan jika berhasil untuk Anda atau jika Anda tertarik dengan versi 2 arah dengan shuffle.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara memasukkan data default ke tabel menggunakan file import.sql di Hibernate, Aplikasi MySQL

  2. Cara Memeriksa Ukuran Database MySQL di Linux

  3. MySQL 'PERBARUI PADA KUNCI DUPLICATE' tanpa kolom unik?

  4. Generator kunci utama kustom MySQL

  5. Membuat umpan dari beberapa model rel, secara efisien?