我正在尝试制作图片库。在索引文件中,我想显示带有图像的相册,请参阅; http://www.robcnossen.nl/
我想将这些相册中的图片随机化,但我会收到各种各样的错误:
警告:rand()期望参数1为long,字符串在。
中给出
我的代码是;
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) ""
}
}
结果。
答案 0 :(得分:0)
shuffle
应该适合您,但如果您将放在 foreach循环中,就像示例代码一样。您需要在开始循环之前随机播放。此外,需要使用数组本身调用shuffle
,而不是数组的项目:
shuffle($albums);
foreach ($albums as $album) {
...
}
答案 1 :(得分:0)
你应该把数组放在循环旁边
<?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
}