PHP preg_match并按文件CREATION日期排序

时间:2014-11-26 06:39:51

标签: php sorting preg-match

我希望preg_match找到给定目录中的所有文件并在页面上显示它们。我知道怎么做,但我如何根据创作日期对它们进行排序?我想要最新的一个。这是我的代码:

function find_files() {
 $files = scandir("content");
 foreach ($files as $value) {
  if(preg_match("/file/", $value)) {
    echo "<li>$value</li>";    
  } 
 }
}

谢谢。

编辑:根据我得到的答案我修改了我的代码:

function find_files() {
 $files = scandir("content");
 usort($files, create_function('$a,$b', 'return filectime($a)<filectime($b);'));
 foreach ($files as $value) {
  if(preg_match("/file/", $value)) {
    echo "<li>$value</li>";    
  } 
 }
}

然而它仍然无法运作。浏览器不会完成加载。

1 个答案:

答案 0 :(得分:1)

PHP支持许多方法对数组进行排序,看看它们在这里是如何工作的。您可以将其作为asort($ files)运行。

解决此问题的正确方法是在输出数组之前对数组进行排序。有点像:

asort($files );
foreach($files as $value) {
  if (preg_match('/file/', $value))
    array[index++] = $value;
}