我的名字是Shruti.I'm新的PHP。我有一个随机显示图像的程序,我的程序中有大约200张图像。我想以不重复的方式显示随机图像,任何人都可以帮助解决这个问题。这是我的代码。显示不重复的随机图像
感谢您的帮助
谢谢。
我的名字是Shruti.I'm新的PHP。我有一个随机显示图像的程序,我的程序中有大约200张图像。我想以不重复的方式显示随机图像,任何人都可以帮助解决这个问题。这是我的代码。显示不重复的随机图像
感谢您的帮助
谢谢。
我不知道$img_id
怎么样,但你可以考虑使用shuffle()
。
shuffle($file_array);
但是后来你失去了与$img_id
的连接。您可能(我不知道这是否是最佳的解决方案),建立你的数组是这样的:
$file_array = array(
array("images/bag200.bmp", 1),
array("images/bag178.bmp", 1),
array("images/bag004.bmp", 0,
...
);
从长远来看,它可能是更好的全部图像路径存储在CSV file甚至一个数据库。相信我,你不想保持与手动> 200项的数组;)
你也可以遍历图像这样(他们是按随机顺序现在):
<?php foreach($file_array as $image): ?>
<img src="<?php echo $image ?>" />
<?php endforeach; ?>
如果你只想要显示的图像的一个子集,随机选择,你可以这样做:
$n = 20; // want to display 20 images
$rand = array_rand(range(0,200), $n); // draw keys randomly
shuffle($rand); //shuffle keys
foreach($rand as $r) {
echo '<img src="' . $file_array[$r] . '" />';
}
您的代码一些评论:
$ran = array_rand($file_array);
$ran
包含从图像中随机选择的密钥。
for ($i=0;$i<200;$i++) {
//while (in_array($tst,$rand_array)){
$tst = $file_array[$ran];
$id = $img_id[$ran];//}
$rand_array[] = $tst;
$rand_id[] = $id;
}
你总是挑同一条目从$file_array
和$image_id
,因为你永远不会改变$ran
。这就是你获得200次相同图像的方式。
如果你想随机但要求唯一性,你正在寻找一个准随机数发生器。有许多不同类型的不同属性。在这里查看有关创建算法的信息:http://www.mathworks.nl/access/helpdesk/help/toolbox/stats/br5k9hi-8.html
没有代码:> – atamanroman 2010-06-21 20:48:19
在每行代码前添加四个空格,否则它不可见。 – 2010-06-21 20:48:35