Rand()函数不应该重复

  • 本文关键字:不应该 函数 Rand php
  • 更新时间 :
  • 英文 :


我有一个代码,从一个文件夹中呈现4张图片。我使用rand()函数是为了每次这些图片都呈现不同的图片,但有时,我在同一页面收到相同的图片。我该怎么做才能避免收到两次相同的图片?

我会将所有可能的图像保存在一个数组中并对其进行洗牌,如下所示:

$images = array('1.png','2.png','3.png','4.png');
shuffle($images);
foreach ($images as $image) {
    // do something with the image
}

我做了一个函数来做这个。使用下面的代码

<?php
function GenRandom($min, $max, $quantity) {
    $numbers = range($min, $max);
    shuffle($numbers);
    return array_slice($numbers, 0, $quantity);
}
foreach(GenRandom(1,4,4) as $test){
echo $test.".png<br>"; // generates unique id everytime
} 
?>

希望这对你有帮助

  1. 生成所有非随机图片的数组

  2. 如果需要,保存随机数组在db(或其他地方)。

  3. 显示图片时,从数组中获取第一个值以获得随机名称

  4. 从数组中移除第一个值

  5. 重复第4-5点。

  6. 如果数组为空,则转到第1点

是否从数组中的所有图像开始?

如果是这样,我个人会使用shuffle($pictures);

然后可能array_chunk($pictures, 4)得到4组

最新更新