列出文件夹中的所有json文件,然后按日期排序并分页



我需要帮助才能让它工作。我使用这段代码列出文件夹中的所有json文件并对其进行分页,效果很好。

<?php
$all_files = [];
$dir = new DirectoryIterator(dirname(__FILE__) . DIRECTORY_SEPARATOR . constant('POSTS_DIR'));
foreach ($dir as $fileinfo) {
if ($fileinfo->isFile() && in_array($fileinfo->getExtension(), array('json'))) {
array_push($all_files, realpath(constant('POSTS_DIR')) . '/' . $fileinfo->getBasename());
}
}
?>

但是,如何通过getMTime()krsort()实现排序呢?我首先要最后修改的文件。

将mtime值存储在一个单独的数组中,然后使用usort对其进行排序。

在循环之前,添加:

$mtimes = [];

循环中:

$all_files[] = $file = realpath(constant('POSTS_DIR')) . '/' . $fileinfo->getBasename());
$mtimes[$file] = $fileinfo->getMTime();

然后,在循环之后:

usort($all_files, function ($a, $b) use ($mtimes) {
return $mtimes[$b] <=> $mtimes[$a];
});

相关内容

最新更新