gpt4 book ai didi

php - 如何配置 php 的 "array_rand"不连续给出 2 个相同的结果?

转载 作者:行者123 更新时间:2023-12-03 23:13:06 25 4
gpt4 key购买 nike

我使用 php array_rand 从数组中选择 1 个随机记录,示例:

$style_class = array("st_style1","st_style2","st_style3","st_style4");
$random_class = array_rand($style_class, 1);
$div_class = $style_class[$random_class];

问题是有时它会多次给出相同的记录,而由于我只使用 4 条记录,它经常安静地发生(不需要使用“array_rand”)。

例子:

st_style1,st_style2,st_style2,st_style2,st_style4,st_style2 ...

有没有办法解决这个问题,让两条相同的记录不会连续显示两次。

例如

st_style2, st_style4, st_style2, st_style1, st_style3, st_style2, st_style1 ...

最佳答案

最简单的解决方案是跟踪最新的一个并继续随机调用直到你得到不同的东西。像这样的东西:

$style_class = array("st_style1","st_style2","st_style3","st_style4");
$styles = array()
$lastStyle = -1
for($i = 0; $i < 5; $i++) {
while(1==1) {
$newStyle = array_rand($style_class, 1);
if ($lastStyle != $newStyle) {
$lastStyle = $newStyle;
break;
}
}
$div_class = $style_class[$lastStyle]
$styles[] = $div_class
}

然后按顺序使用$styles[]数组。它不应该有任何重复

关于php - 如何配置 php 的 "array_rand"不连续给出 2 个相同的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7839264/

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