function distribute($usersWeights, $teams, $max) { arsort($usersWeights); foreach ($usersWeights as $key => $value) { $minTeamWeight = AdminController::sumVals($teams[1]); $selectTeam = 1; foreach ($teams as $teamKey => $teamValue) { if (count($teams[$teamKey]) < $max) { if (AdminController::sumVals($teamValue) < $minTeamWeight) { $minTeamWeight = AdminController::sumVals($teamValue); $selectTeam = $teamKey; } } } AdminController::addToTeam($selectTeam, $key); array_push($teams[$selectTeam], $value); } }