PHP数组区块获取';s被访问了两次,我没有;我不知道为什么


PHP Array chunk get's accessed twice and I don't know why

我写了一个函数来启动锦标赛,人们收到了两次电子邮件,而不是一次。所以我试着调试一些东西。正如你所看到的,我用数据库中的信息填充了一个数组(第[]部分),对随机的敌人进行洗牌,然后想通过电子邮件向参与者发送他们的对手。我删掉了整封电子邮件,只打印了数组。但它被打印了两次。真正让我恶心的是,其中一张照片出现在上方

echo "<hr>";

这太疯狂了,因为没有输出。

function start_pre($t_id) {
   global $con;
    $participants=array();
    $sql = "SELECT u.name, u.btag, u.email FROM participant p, user u WHERE p.tournament_id = ".$t_id." AND p.user_id = u.user_id";
    $result = mysqli_query($con, $sql);
    if ($result) {
        while ($row = mysqli_fetch_array($result)) {
            $part[] = array(
                "name" => $row['name'], 
                "btag" => $row['btag'], 
                "email" => $row['email']
                );        
    }
    } else {echo "Problem.";}
    shuffle($part);
    echo "<hr>";
    $paare = array_chunk($part, 2);
    foreach ($paare as $paar) {
            print_r($paar);
    }
    $sql = "UPDATE tournament SET enrollable='0' WHERE tournament_id='".$t_id."'";
    $result = mysqli_query($con, $sql);
    }

由于隐私等原因,我无法包含实际输出的屏幕截图,但我敢打赌,你可以想象水平线上方和下方的打印数组的外观。感谢您的帮助!

您必须调用整个函数两次。此外,如果只在mysql中使用order by rand()而不是shuffle,它的性能会更好。