php array_push 未运行

php array_push not functioning

我有一个正在处理的脚本,可以自动构建团队池。有几个俱乐部,每个俱乐部可以有多个团队。来自同一俱乐部的一个池中的多个团队是不允许的。这是我的脚本出错的地方。它检查该团队是否与同一池中的其他团队在同一个俱乐部(16 个池,每个池 4 个团队)。

它从数组中弹出 teamid 并比较数据库中的俱乐部 ID,如果它们具有相同的俱乐部 ID,则 teamID 将被推回数组并重复直到找到不同俱乐部的球队。

不知何故(有时?)未能将团队推回阵列,我看不出我做错了什么。这是否发生过一次,我最终得到的团队少了,如果它发生了不止一次,最后(或最后 2 个)池有空值,这将导致 while 循环永远持续下去。

这是比较球队和俱乐部 ID 的代码片段。

        //TeamA
        //set dummyteam if needed, else choose from array
        if($dummy != 0){
            $teamA = "73";
            --$dummy;
        }
        else{
            $teamA = array_pop($teams);
        }

        $teamB = array_pop($teams);
        //TeamB
        //is TeamB in different club then Team A?
        $ABteamisdifferent = 0;
        while($ABteamisdifferent == 0){
            if(GetClubID($teamA) == GetClubID($teamB)){
                    $teams[] = $teamB;
                    shuffle($teams);
                    $ABteamisdifferent = 0;
                    $teamB = array_pop($teams);

            }
            else{
                $ABteamisdifferent = 1;
            }
        }
        ...... 

Full code link

Script output

Function Code

我已经浪费了 3 个小时来解决这个问题,但我可能忽略了一些愚蠢的事情。尽管如此,我们还是非常感谢您的帮助。

您正在将团队添加回 $team 变量而不是 $teams。只需更改以下行:

$team[] = $teamB;

至:

$teams[] = $teamB;