Php 是否可以采用阵列中循环?

Php 是否可以采用阵列中循环?,php,arrays,Php,Arrays,因此,这个功能的重点是根据球员排名创建平衡的球队。我的原始代码工作得很好: function playerCreate(){ global $teams, $players; //find the average captain MMR $averageTeams = averageteams(); sortTeams(); //Any captain above average add the lowest MMR player for($i = 0; $i < count($teams

因此,这个功能的重点是根据球员排名创建平衡的球队。我的原始代码工作得很好:

function playerCreate(){
global $teams, $players;
//find the average captain MMR
$averageTeams = averageteams();
sortTeams();
//Any captain above average add the lowest MMR player
for($i = 0; $i < count($teams);$i++){
  if ($teams[$i]['totalMMR'] > $averageTeams){
    addPlayer($i,0);
}
//Any captain below average MMR add the highest MMR player
else {
    addPlayer($i,count($players)-1);
}
}} 
以下是三个阵列:

$captains = array();
for ($i = 1; $i <= 40; $i++){
  $players[] = array('name' => 'Player ' . $i, 'MMR' => rand(2800,4200));
}
for ($i = 1; $i <= 10; $i++){
  $captains[] = array('name' => 'Captain ' . $i, 'MMR' => rand(3200,4200));
}
$teams = array();
//put captains on teams
for($i = 0;$i < count($captains); $i++){
$teams[] = array('name' => 'Team ' . ($i + 1), 'captain' => $captains[$i], 'players' => array(), 'totalMMR' => $captains[$i]['MMR']);
}

我想我明白了。我将函数更改为:

function playerCreate(){
  global $teams, $players;
  //find the average captain MMR
  $averageTeams = averageteams();
  $belowAverage = 0;
  $aboveAverage = 0;
  sortTeams();
  for($i = 0; $i < count($teams);$i++){
    if ($teams[$i]['totalMMR'] > $averageTeams){
      $aboveAverage++;
    }
    else {
      $belowAverage++;
    }
  }
  for($y = 0; $y < $belowAverage; $y++){
    addPlayer($y,count($players)-1);
  }
  for($z = count($teams)-1;$z > count($teams) - 1 - $aboveAverage; $z--){
    addPlayer($z,0);    
  }
 }
函数playerCreate(){
全球$团队$玩家;
//找到平均队长MMR
$averageTeams=averageTeams();
$belowAverage=0;
$overaverage=0;
sortTeams();
对于($i=0;$i$averageTeams){
$高于平均水平++;
}
否则{
$belowAverage++;
}
}
对于($y=0;$y<$belowAverage;$y++){
addPlayer($y,count($players)-1);
}
对于($z=计数($teams)-1;$z>计数($teams)-1-$over average;$z--){
addPlayer($z,0);
}
}

您可以发布$averageTeams、$teams、$Player的示例数组值吗?这肯定会有帮助。Done$AverageTeam只是一个调用我的函数之一的变量。当我试图将函数直接调用到比较中时,感觉很奇怪。addPlayer()呢?现在也添加了,但我想我最终找到了答案。也许不是最有效的方法。但它起了作用。你能弄明白这一点,真是太好了。
function addPlayer($team,$newPlayer){
  global $teams, $players;
  $teams[$team]['players'][] = $players[$newPlayer];
  $teams[$team]['totalMMR'] += $players[$newPlayer]['MMR'];
  unset($players[$newPlayer]);
  $players = array_values($players);
}
function playerCreate(){
  global $teams, $players;
  //find the average captain MMR
  $averageTeams = averageteams();
  $belowAverage = 0;
  $aboveAverage = 0;
  sortTeams();
  for($i = 0; $i < count($teams);$i++){
    if ($teams[$i]['totalMMR'] > $averageTeams){
      $aboveAverage++;
    }
    else {
      $belowAverage++;
    }
  }
  for($y = 0; $y < $belowAverage; $y++){
    addPlayer($y,count($players)-1);
  }
  for($z = count($teams)-1;$z > count($teams) - 1 - $aboveAverage; $z--){
    addPlayer($z,0);    
  }
 }