如何使PHP以与readdir相反的顺序显示文件?

如何使PHP以与readdir相反的顺序显示文件?,php,Php,我用它来返回图像,以它们被添加到目录中的顺序,但是我希望它们从最新到旧排序。我怎么做?谢谢 <? $handle = @opendir("images"); if(!empty($handle)) { while(false !== ($file = readdir($handle))) { if(is_file("images/" . $file)) echo '<img src="images/' . $file . '"><br>&l

我用它来返回图像,以它们被添加到目录中的顺序,但是我希望它们从最新到旧排序。我怎么做?谢谢

<?
$handle = @opendir("images");

if(!empty($handle)) {
  while(false !== ($file = readdir($handle))) {
    if(is_file("images/" . $file))
      echo '<img src="images/' . $file . '"><br><br>';
  }
}

closedir($handle);
?>

我认为最简单的方法是将文件读入数组,将其反转并输出反转的数组:

<?php

$handle = @opendir("images");

if(!empty($handle))
{
    $files = array();
    while(false !== ($file = readdir($handle)))
    {
        if(is_file("images/" . $file))
            $files[] = $file;
    }

    foreach(array_reverse($files) as $file) {
        echo '<img src="images/' . $file . '"><br><br>';
    }
}

closedir($handle);

?>

像这样:

<?
$handle = @opendir("images");

$files = array();
if(!empty($handle)) {
  while(false !== ($file = readdir($handle))) {
    if(is_file("images/" . $file))
      $files[] = $file;
  }
}

closedir($handle);

// flip the array over
$files = array_reverse($files);

// display on screen
foreach ($files as $file)
  echo '<img src="images/' . $file . '"><br><br>';
?>

如果您希望从最新版本到较旧版本进行订购,则不能仅依赖readdir。这个顺序可能是任意的。您需要按时间戳对它们进行排序:

$files = glob("images/*");    // or opendir+readdir loop

$files = array_combine($files, array_map("filemtime", $files));
arsort($files);               // sorts by time

$files = array_keys($files);  // just leave filenames