我需要帮助才能让它工作。我使用这段代码列出文件夹中的所有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];
});