如何随机化相册中的图像


How to randomize images from albums

我正在尝试制作一个图像库。在索引文件上,我想显示带有图像的相册,请参阅;http://www.robcnossen.nl/

我想随机化这些相册中的图像,但我得到了各种各样的错误,比如:

警告:rand()要求参数1较长,在.中给出字符串

我的代码是;

foreach ($albums as $album) {
?><div><h2><?php
echo'<a href="view_album.php?album_id=', $album['id'],'">',$album['name'], '</a>';?>       </h2><?php       
    echo'<a href="view_album.php?album_id=', $album["id"],'"><img src="uploads/thumbs/', $album["id"], '/', $album["imagename"],'" title="" /></a>';
    ?></div><?php
}

$album["imagename"]是相册中的图像,我想将这一部分随机化。我举了个例子:

rand($album["imagename"], 0)

但这就产生了一个错误。

我也试过洗牌;

foreach ($albums as $album) {
shuffle($album["imagename"]);
?><div><h2><?php
echo'<a href="view_album.php?album_id=', $album['id'],'">',$album['name'], '</a>';?></h2><?php      
    echo'<a href="view_album.php?album_id=', $album["id"],'"><img src="uploads/thumbs/', $album["id"], '/', $album["imagename"],'" title="" /></a>';
    ?></div><?php
}

但在那里我也只有错误。

有人能帮我吗?

var_dump($albums);给出

array(2) {
   [0]=> array(8) { 
      ["id"]=> string(1) "8" 
      ["timestamp"]=> string(10) "1373890251" 
      ["name"]=> string(7) "Holland" 
      ["description"]=> string(19) "Fantastische foto's" 
      ["count"]=> string(1) "2" 
      ["imagename"]=> string(38) "KONICA MINOLTA DIGITAL CAMERA_428.jpeg" 
      ["image"]=> string(2) "63" 
      ["ext"]=> string(0) ""
   } 
   [1]=> array(8) { 
      ["id"]=> string(1) "9" 
      ["timestamp"]=> string(10) "1376914749" 
      ["name"]=> string(6) "Belgie" 
      ["description"]=> string(11) "Mooi Belgie" 
      ["count"]=> string(1) "2" 
      ["imagename"]=> string(12) "PICT0170.JPG" 
      ["image"]=> string(2) "66" 
      ["ext"]=> string(0) "" 
   }
  }

结果。

shuffle应该适用于您,但如果您将其放入foreach循环中,则不适用,就像您的示例代码一样。在开始循环之前,您需要洗牌。此外,shuffle需要用数组本身调用,而不是数组的一项:

shuffle($albums);
foreach ($albums as $album) {
    ...
}

您应该将数组移出循环

<?php
 shuffle($albums);
 foreach ($albums as $album) 
 {
  ?><div><h2>
 <?php
  echo'<a href="view_album.php?album_id=', $album['id'],'">',$album['name'], '</a>';
  ?>
  </h2>
  <?php      
      echo'<a href="view_album.php?album_id=', $album["id"],'"><img src="uploads/thumbs/', $album["id"], '/', $album["imagename"],'" title="" /></a>';
  ?>
  </div>
  <?php
 }