PHP数组块被访问两次,我不知道为什么

时间:2016-01-07 10:24:35

标签: php arrays loops chunks

我写了一个函数来开始比赛,人们有两次电子邮件,而不是一次。所以我试着调试一下。正如你所看到的,我用数据库中的信息填充一个数组(part []),随机播放随机敌人的东西,然后想要给参与者发送电子邮件给他们的对手。我剪掉了整个电子邮件,然后打印了数组。但它会被打印两次。让我感到恶心的是,其中一个版画出现在

之上
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);

    }

由于隐私和内容,我无法包含实际输出的屏幕截图,但我敢打赌,您可以想象水平线上方和下方的打印数组如何显示。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:0)

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