循环使用随机数,中间数除外

时间:2010-11-23 09:57:36

标签: php loops random

我需要生成一个随机图片库。除了中间的必须始终是相同的。

假设我有40张图片。我需要从40中选择16个随机图像。第9个图像应该始终相同。

有什么想法吗?

精确度:

对我来说,“硬”部分是要知道已经使用了哪些数字,而不是

提前致谢

3 个答案:

答案 0 :(得分:3)

没有迭代的解决方案:

$array=$original; // $original represents your 40 images
$ninth=$array[8]; // save 9th element for use later
unset($array[8]); // exclude the 9th element
shuffle($array); // randomize sequence
$array=array_slice($array,0,16); // get 16 images
$array[8]=$ninth; // replace 9th element with saved element
$unused=array_diff($original,$array); // list of unused elements

答案 1 :(得分:1)

所以,写一个函数printRandomImage()

调用它8次,然后打印非随机图像,然后再调用它7次。

如果您想避免在随机图像中出现重复,则必须从40幅图像列表中删除已经选中的图像。

答案 2 :(得分:0)

这些方面的东西可以帮助你:

for ($i=1; $i<=16; $i++) {
  if ($i==9) {
    // show static image
  } else {
    // generate random nr between 1 and 40
  }
}