gpt4 book ai didi

php - 重复 if/elseif/else 直至完成

转载 作者:行者123 更新时间:2023-11-29 11:00:02 24 4
gpt4 key购买 nike

如果 if/elseif/else 语句落在任何非 else 的语句上,我希望能够循环该语句。

$names 是一个数组,其中包含用户将选择的几个名称。

现在,代码确实可以工作,但如果条件落入任何 elseif 中,则循环将停止。从用户的角度来看,几乎就像什么都没发生一样。

if($names[0] == $poster) {
shuffle($names);
} elseif($names[1] == $entertainer) {
shuffle($names);
} elseif($names[2] == $tunar) {
shuffle($names);
} elseif($names[3] == $keeper) {
shuffle($names);
} elseif($names[4] == $feeder) {
shuffle($names);
} elseif($names[5] == $provider) {
shuffle($names);
} else {
echo "This week's roles are:";

while($row = mysqli_fetch_assoc($this_week_result) ) {
$poster = $row['poster'];
$entertainer = $row['entertainer'];
$tunar = $row['tunar'];
$keeper = $row['keeper'];
$feeder = $row['feeder'];
$provider = $row['provider'];
}

echo $names[0] . " is the Poster <br>";
echo $names[1] . " is the Entertainer <br>";
echo $names[2] . " is the Tunar <br>";
echo $names[3] . " is the Keeper <br>";
echo $names[4] . " is the Feeder <br>";
echo $names[5] . " is the Provider <br>";

$sql = "INSERT INTO funroles
(poster,entertainer,tunar, keeper, feeder, provider, date)
VALUES ('$names[0]','$names[1]','$names[2]','$names[3]','$names[4]','$names[5]','$date')";

$result = mysqli_query($conn, $sql);
mysqli_close($conn);
}

最佳答案

看起来您想继续洗牌,直到 $names 中的任何名称都不再处于之前的位置。如果我理解正确的话,你可以不用 if/elseif/else 结构来完成。

创建与 $names 的关键位置匹配的当前名称数组,如下所示:

$current = [$poster, $entertainer, $tunar, $keeper, $feeder, $provider];

然后使用array_intersect_assoc检查是否有任何键/值对匹配,并shuffle直到它们都不匹配(它将返回一个空数组)。

while (array_intersect_assoc($current, $names)) {
shuffle($names);
}

然后对数据库进行处理。

关于php - 重复 if/elseif/else 直至完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42426156/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com