PHP - 如何按订单搜索文件夹图像

时间:2013-04-05 21:56:12

标签: php search directory

我有以下代码来搜索文件夹/ 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 ."\">" ;
        }
    }               
?>

提前致谢。

4 个答案:

答案 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 ."\">" ;
}
}
?>