php数组\u推送不起作用

php数组\u推送不起作用,php,array-push,Php,Array Push,我有一个脚本,我正在工作,这是自动建立团队池。有几个俱乐部,每个俱乐部可以有多支球队。不允许来自同一俱乐部的多支球队在同一泳池。这就是我的脚本出错的地方。它检查球队是否与同一池中的其他球队在同一个俱乐部(16个池,每个池4个队) 它从数组中弹出teamid并比较DB中的俱乐部ID,如果它们具有相同的俱乐部ID,teamid将被推回到数组中并重复,直到它在不同的俱乐部中找到团队 不知何故,它(有时?)未能将团队重新推回到阵列中,我看不出我做错了什么。如果这种情况发生一次,我的团队就会减少,如果发生

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

它从数组中弹出teamid并比较DB中的俱乐部ID,如果它们具有相同的俱乐部ID,teamid将被推回到数组中并重复,直到它在不同的俱乐部中找到团队

不知何故,它(有时?)未能将团队重新推回到阵列中,我看不出我做错了什么。如果这种情况发生一次,我的团队就会减少,如果发生的次数超过一次,那么最后一个(或最后两个)池的值为空,这将导致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;
            }
        }
        ...... 


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

您将团队重新添加到
$team
变量中,而不是
$teams
。只需更改以下行:

$team[] = $teamB;
致:


您正在将团队添加到
$team
数组中。这就是你的意思,还是你想把它推到
$teams
数组中?天哪,我想我忽略了一些东西,但这。。。我现在感到惭愧。提示:虽然我最初认为这解决了问题(这是问题的一部分),但有时它仍然锁定在无限While循环中。我调整了有问题的代码和外部文件以反映代码更改。如果数组只包含同一俱乐部的团队,您将得到一个无休止的循环。因此,如果从该数组中选择了球队,最终,可能会留下一个数组,其中只包含与TeamA拥有相同俱乐部的球队(或球队)。无论如何,我不完全确定你想做什么,但这似乎是一段非常复杂的代码,有很多重复。也许现在是退后一步的好时机,也许可以从头重写逻辑。而且,由于这个问题在最初的团队混合后发生了很大变化,甚至得到了最初版本的答案,如果你仍然卡住了,最好关闭/接受这个,然后写一个新的。虽然我最初认为这解决了问题(这是问题的一部分),但有时它仍然锁定在无限While循环中。我调整了有问题的代码和外部文件,以反映代码更改。
$teams[] = $teamB;