我有下面的代码来搜索文件夹/images/的图像和回声。但是,每次刷新页面时,它都会以随机顺序显示图像。这些图像被命名为1、2、3、4等等。有什么办法使最后一个数字(例如:4)是第一个显示的数字,等等?
<?php
$dirname = "images";
$images = scandir($dirname);
shuffle($images);
$ignore = Array(".", "..");
foreach($images as $curimg){
if(!in_array($curimg, $ignore)) {
echo "<img src='"". $dirname . '/' . $curimg ."'">" ;
}
}
?>
这是由于您的洗牌。你在随机化你的数组。让我给你介绍:http://php.net/manual/en/function.array-reverse.php
<?php
$dirname = "images";
$images = scandir($dirname);
$images = arsort(array_reverse($images, true));
$ignore = Array(".", "..");
foreach($images as $curimg){
if(!in_array($curimg, $ignore)) {
echo "<img src='"". $dirname . '/' . $curimg ."'">" ;
}
}
?>
:
$dirname = "Images";
$images = scandir($dirname);
sort($images,SORT_NUMERIC);
krsort($images);
$ignore = Array(".", "..");
foreach($images as $curimg){
if(!in_array($curimg, $ignore)) {
echo "<img src='"". $dirname . '/' . $curimg ."'"> 'n" ;
}
}
我一直在做什么:
没有sort();
和krsort();
i返回:
<img src="Images/1.png">
<img src="Images/10.png">
<img src="Images/11.png">
<img src="Images/2.png">
<img src="Images/3.png">
<img src="Images/4.png">
<img src="Images/5.png">
<img src="Images/6.png">
<img src="Images/7.png">
<img src="Images/8.png">
<img src="Images/9.png">
使用krsort和sort..我返回:
<img src="Images/11.png">
<img src="Images/10.png">
<img src="Images/9.png">
<img src="Images/8.png">
<img src="Images/7.png">
<img src="Images/6.png">
<img src="Images/5.png">
<img src="Images/4.png">
<img src="Images/3.png">
<img src="Images/2.png">
<img src="Images/1.png">
我想这就是你要找的。
http://www.php.net/manual/en/function.array-reverse.php
应该是正确的函数,而不是shuffle
更新:最好直接通过scandir:
进行排序。$images = scandir($dirname, SCANDIR_SORT_DESCENDING);
您可以尝试将图像名称加载到数组中,然后对数组进行排序,然后返回图像标记
<?php
$dirname = "images";
$files = scandir($dirname, 1); // using SCANDIR_SORT_DESCENDING PHP 5.4+ ONLY!
foreach ($files as $file) {
if ($file !== '.' && $file !== '..') {
echo "<img src='"". $dirname . '/' . $file ."'">" ;
}
}
?>