rand()函数不应该重复

时间:2014-08-18 12:32:12

标签: php

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

4 个答案:

答案 0 :(得分:9)

我将所有可能的图像保存在一个数组中shuffle,如下所示:

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

答案 1 :(得分:0)

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

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

然后可能array_chunk($pictures, 4)获得4人组。

答案 2 :(得分:0)

我已经完成了这个功能。使用以下代码

<?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
} 

?>

希望这有助于你

答案 3 :(得分:0)

  1. 使用未随机化的所有图片生成数组。

  2. 随机整个数组。

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

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

  5. 从数组中删除第一个值。

  6. 每个请求重复4-5点。

  7. 如果数组为空,请转到第1点。