我有一个代码,从一个文件夹中呈现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
}
?>
希望这对你有帮助
-
生成所有非随机图片的数组
-
如果需要,保存随机数组在db(或其他地方)。
-
显示图片时,从数组中获取第一个值以获得随机名称
-
从数组中移除第一个值
-
重复第4-5点。
-
如果数组为空,则转到第1点
是否从数组中的所有图像开始?
如果是这样,我个人会使用shuffle($pictures);
然后可能array_chunk($pictures, 4)
得到4组