我正在尝试制作一个图像库。在索引文件上,我想显示带有图像的相册,请参阅;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
}