Advertisement
Guest User

Untitled

a guest
Mar 15th, 2012
532
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.03 KB | None | 0 0
  1.     function make_teams($league_id,$number_of_teams) {
  2.        
  3.         $users = $this->league_model->get_league_users($league_id);
  4.         $skill_levels = array();    
  5.        
  6.         foreach($users as $user) {
  7.            
  8.             $sorted_users[$user['user__skill_level']][] = $user;            
  9.             $skill_levels[$user['user__skill_level']] = $user['user__skill_level'];
  10.  
  11.            
  12.         }
  13.        
  14.         $teams = array();
  15.        
  16.         for ($i = 1; $i <= $number_of_teams; $i++) {
  17.        
  18.             $teams[$i]['score'] = 0;
  19.             $teams[$i]['users'] = array();
  20.  
  21.        
  22.         }
  23.        
  24.         arsort($skill_levels);
  25.  
  26.         $team_with_lowest_score = 1;
  27.        
  28.         foreach($skill_levels as $skill_level) {              
  29.            
  30.            
  31.             echo '<h1>Skill Level: ' . $skill_level . '</h1>';            
  32.            
  33.             // Figure out new pick order
  34.             $pick_order = $this->_get_pick_order($teams);
  35.  
  36.            
  37.             $pick_order_index = 0;
  38.            
  39.             echo '<p>initial pick order for round:';
  40.             foreach($pick_order as $x) {                
  41.                 echo ' | team ' . $x['team'] . ' [' . $x['score'] . 'pts]';
  42.             }
  43.            
  44.             shuffle($sorted_users[$skill_level]);
  45.            
  46.             foreach($sorted_users[$skill_level] as $user) {
  47.                
  48.                 $teams[$pick_order[$pick_order_index]['team']]['users'][] = $user;
  49.                 $teams[$pick_order[$pick_order_index]['team']]['score'] += $user['user__skill_level'];
  50.                
  51.                 echo '<br />team ' . $pick_order[$pick_order_index]['team'] . ' receives: ' . $user['user__first_name'] . '';
  52.                
  53.                 if($pick_order_index == $number_of_teams - 1) {
  54.                     $pick_order = $this->_get_pick_order($teams);
  55.                     echo '<p>new pick order for round:';
  56.                     foreach($pick_order as $x) {                
  57.                         echo ' | team ' . $x['team'] . ' [' . $x['score'] . 'pts]';
  58.                     }                    
  59.                     $pick_order_index = -1;
  60.                 }
  61.                
  62.                 $pick_order_index++;
  63.             }
  64.            
  65.         }
  66.        
  67.         foreach($teams as $key=>$team) {
  68.            
  69.             echo '<h4>team ' . $key . ': ' . count($team['users']) . ' players</h4>';
  70.             $team_total = 0;
  71.             foreach($team['users'] as $user){
  72.                 $team_total += $user['user__skill_level'];
  73.             }
  74.             echo '<p>score: ' . $team_total . '</p>';
  75.  
  76.         }
  77.        
  78.         foreach($teams as $key => $team) {
  79.             echo '<h2>Team ' . $key . '</h2>';
  80.             echo '<p>score: ' . $team['score'] . '</p>';
  81.             echo '<table>';
  82.             foreach ($team['users'] as $user) {
  83.                 echo '<tr>';
  84.                 echo '<td>' . $user['user__first_name'] . '</td>';
  85.                 echo '<td>' . $user['user__last_name'] . '</td>';
  86.                 echo '<td>' . $user['user__skill_level'] . '</td>';
  87.                 echo '</tr>';
  88.             }
  89.             echo '</table>';
  90.         }
  91.        
  92.  
  93.     }
  94.    
  95.     function _get_pick_order($teams) {
  96.        
  97.        
  98.         // Figure out new pick order
  99.         $pick_order_x = array();
  100.         $pick_order = array();
  101.  
  102.         foreach($teams as $key => $team) {
  103.             $pick_order_x[$key]['team'] = $key;
  104.             $pick_order_x[$key]['score'] = $team['score'];
  105.         }
  106.  
  107.         $pick_order_x = subval_sort($pick_order_x,'score');  
  108.  
  109.         foreach($pick_order_x as $x ) {
  110.             $pick_order[] = $x;
  111.         }      
  112.  
  113.         return $pick_order;
  114.            
  115.     }
  116.  
  117. function subval_sort($a, $subkey, $order='asc') {
  118.     foreach ($a as $k => $v)
  119.         $b[$k] = strtolower($v[$subkey]);
  120.     if ($order === 'desc')
  121.         arsort($b);
  122.     else
  123.         asort($b);
  124.     foreach ($b as $key => $val)
  125.         $c[$key] = $a[$key];
  126.     return $c;
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement