- How do i distribute round robin times equally?
- <?php
- $teams = array('Team 1','Team 2','Team 3','Team 4','Team 5','Team 6');
- $season = 1;
- $league = 'Mens';
- $date = '2012-02-01';
- $times = array('19:00','20:00','21:00');
- $date_bits = explode('-',$date);
- $start_day = mktime(0, 0, 0, $date_bits[1], $date_bits[2], $date_bits[0]);
- $weeks = 12;
- $count = count($teams);
- $times = array_slice($times,0,floor($count/2));
- $times_count = count($times);
- $start = 1;
- if($count%2!=0)
- {
- $teams[] = 'Bye';
- $count++;
- }
- $date_i = 0;
- for($i=0;$i<$weeks;$i++)
- {
- $keyA = $start;
- $keyB = $keyA-1; if($keyB<1)$keyB = $count-1;
- $tA = array();
- $tB = array();
- for($k=0;$k<$count-1;$k++)
- {
- $tA[] = $teams[$keyA];
- $tB[] = $teams[$keyB];
- $keyA++; if($keyA>$count-1) $keyA = 1;
- $keyB--; if($keyB<1) $keyB = $count-1;
- }
- array_unshift($tA,$teams[0]);
- $tB[] = $teams[0];
- $inc = 0; // time increment
- for($k=0;$k<$count;$k++)
- {
- if($tA[$k]=='Bye'||$tB[$k]=='Bye') continue;
- $col = array();
- $col['season'] = $season; //season
- $col['league'] = $league; //league
- $col['round'] = 'Round '.($i+1); //round
- $col['date'] = date('Y-m-d',strtotime("+{$i} week",$start_day)); //date
- $col['time'] = $times[$inc]; //time
- $col['teamA'] = $tA[$k]; //result_teamA
- $col['teamA_result'] = 0; //result_teamA
- $col['teamB'] = $tB[$k]; //result_teamB
- $col['teamB_result'] = 0;
- $data['results'][] = $col;
- $inc++;
- if($inc==$times_count) break;
- }
- $start--; if($start<1) $start = $count-1;
- // shift allocated times
- $first = $times[0];
- $times = array_slice($times,1,count($times));
- array_push($times,$first);
- }
- echo '<table border="1">';
- foreach($data['results'] as $result)
- {
- echo '<tr><td>'.implode('</td><td>',array_values($result)).'</td></tr>';
- }
- echo '</table>';
- ?>