मैंने स्क्रैच से राउंडरोबिन फ़ंक्शन बनाया क्योंकि मैंने सोचा था कि समान परिणाम प्राप्त करना आसान हो सकता है और मुझे संख्याओं के बजाय सीधे स्ट्रिंग से भरे सरणी का उपयोग करने की इजाजत देता है।
क्योंकि मैं डेटाबेस से नामों की एक सूची खींचता हूं और एक सरणी में जोड़ता हूं, अब मैं इसे सीधे नीचे दिए गए फ़ंक्शन के साथ शेड्यूल कर सकता हूं। नंबरों को नाम आदि से जोड़ने के लिए किसी अतिरिक्त कदम की आवश्यकता नहीं है।
कृपया इसे आज़माने के लिए स्वतंत्र महसूस करें और अगर यह काम करता है तो एक टिप्पणी छोड़ दें। मेरे पास एक संस्करण भी है जो 2 तरह (घर और वापसी) शेड्यूल और या फेरबदल विकल्प की अनुमति देता है। अगर किसी को उसमें दिलचस्पी है तो एक टिप्पणी भी छोड़ दें।
<?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;
}
?>
कैसे उपयोग करें, उदाहरण के लिए एक सरणी बनाएं जैसे:
<?php $members = array(1,2,3,4); ?>
या
<?php $members = array("name1","name2","name3","name4"); ?>
फिर उपरोक्त सरणी के आधार पर अपना शेड्यूल बनाने के लिए फ़ंक्शन को कॉल करें:
<?php $schedule = scheduler($members); ?>
परिणामी सरणी शेड्यूल को प्रदर्शित करने के लिए बस नीचे की तरह करें या वैसे भी आपको पसंद है:यह छोटा कोड शेड्यूल को एक अच्छे प्रारूप में प्रदर्शित करता है लेकिन इसे वैसे भी उपयोग करें जैसा आप चाहते हैं।
<?php
foreach($schedule AS $round => $games){
echo "Round: ".($round+1)."<BR>";
foreach($games AS $play){
echo $play["Home"]." - ".$play["Away"]."<BR>";
}
echo "<BR>";
}
?>
अगर यह आपके लिए काम करता है या यदि आप फेरबदल के साथ 2-तरफा संस्करण में रुचि रखते हैं तो एक नोट छोड़ दें।