PHP 数组块被访问了两次,我不知道为什么
PHP Array chunk get's accessed twice and I don't know why
我写了一个函数来开始比赛,人们收到了两次电子邮件,而不是一次。所以我试着调试东西。如您所见,我用我的数据库中的信息填充一个数组 (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);
}
由于隐私等原因,我无法提供实际输出的屏幕截图,但我敢打赌,您可以想象水平线上方和下方的打印阵列的外观。感谢您的帮助!
您必须调用整个函数两次。此外,如果您只在 mysql 中使用 order by rand()
而不是 shuffle
.
,它的性能会更好
我写了一个函数来开始比赛,人们收到了两次电子邮件,而不是一次。所以我试着调试东西。如您所见,我用我的数据库中的信息填充一个数组 (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);
}
由于隐私等原因,我无法提供实际输出的屏幕截图,但我敢打赌,您可以想象水平线上方和下方的打印阵列的外观。感谢您的帮助!
您必须调用整个函数两次。此外,如果您只在 mysql 中使用 order by rand()
而不是 shuffle
.