Php I';我想在拉威尔做一个火柴发生器。但每个团队在输出中出现两次

Php I';我想在拉威尔做一个火柴发生器。但每个团队在输出中出现两次,php,laravel,Php,Laravel,我在拉威尔做一个火柴发生器。我有一个名为$matches的数组。问题是,当我输出代码时,每个团队都会玩两次。我使用的代码如下所示 public function generateMatches($allContestants){ $matches = []; for ($i=0; $i < count($allContestants) -1; $i++) { $matches[] = [ 'team1' => $al

我在拉威尔做一个火柴发生器。我有一个名为$matches的数组。问题是,当我输出代码时,每个团队都会玩两次。我使用的代码如下所示

public function generateMatches($allContestants){
    $matches = [];
    
    for ($i=0; $i < count($allContestants) -1; $i++) { 
        $matches[] = [
            'team1' => $allContestants[$i]->id,
            'team2' => $allContestants[$i+1]->id
        ];
    }
    dd($matches);
}

正如你所看到的,每场比赛的第二队都是下一场比赛中使用的第一队。有人知道如何解决这个问题吗?

如果你想保持在数组中循环的逻辑(而不是随机生成),你可以将$i每次增加2而不是1

public function generateMatches($allContestants){
    $matches = [];
    
    for ($i=0; $i < count($allContestants) - 2; $i += 2) { 
        $matches[] = [
            'team1' => $allContestants[$i]->id,
            'team2' => $allContestants[$i+1]->id
        ];
    }
    dd($matches);
}
公共函数生成匹配($AllCompetities){
$matches=[];
对于($i=0;$i$AllCompetities[$i]>id,
“team2”=>$AllCompetities[$i+1]->id
];
}
dd($matches);
}
现在唯一的问题是定义如果竞赛数量不均衡会发生什么


关于随机操作,你可以看看这篇文章:

解决了这个问题。非常感谢你!
public function generateMatches($allContestants){
    $matches = [];
    
    for ($i=0; $i < count($allContestants) - 2; $i += 2) { 
        $matches[] = [
            'team1' => $allContestants[$i]->id,
            'team2' => $allContestants[$i+1]->id
        ];
    }
    dd($matches);
}