Php 列出文件夹中的所有json文件,然后按日期排序并分页
我需要帮助使它工作。 我使用这段代码列出文件夹中的所有json文件并对其进行分页,效果很好Php 列出文件夹中的所有json文件,然后按日期排序并分页,php,Php,我需要帮助使它工作。 我使用这段代码列出文件夹中的所有json文件并对其进行分页,效果很好 <?php $all_files = []; $dir = new DirectoryIterator(dirname(__FILE__) . DIRECTORY_SEPARATOR . constant('POSTS_DIR')); foreach ($dir as $fileinfo) { if ($fileinfo->isFile() && in_array($fi
<?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];
});
然后,在循环之后:
$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];
});
usort($all_文件,函数($a,$b)使用($mtimes){
返回$mtimes[$b]$mtimes[$a];
});
这正是我所期待的。谢谢你的支持,克里斯托夫。