我有以下代码来搜索文件夹/ images / for 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 ."\">" ;
}
}
?>
提前致谢。
答案 0 :(得分:3)
这是由于你的洗牌。你正在随机化你的数组。让我向您介绍: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();
我返回:
<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">
我认为你正在寻找的是什么。
答案 1 :(得分:1)
http://www.php.net/manual/en/function.array-reverse.php
应该是正确的功能而不是随机播放
更新:
最好是通过scandir直接对其进行排序:
$images = scandir($dirname, SCANDIR_SORT_DESCENDING);
答案 2 :(得分:0)
您可以尝试将图像名称加载到数组中,而不是排序数组,然后是回显图像标记
答案 3 :(得分:0)
<?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 ."\">" ;
}
}
?>