gpt4 book ai didi

PHP获取文件夹名称按创建日期排序

转载 作者:搜寻专家 更新时间:2023-10-31 20:58:44 26 4
gpt4 key购买 nike

我想获取目录中的所有文件夹名称并按创建日期排序。现在我正在使用以下代码获取目录中的所有 fodernames。

$path = 'userfiles';
$dirs = array();
// directory handle
$dir = dir($path);

while (false !== ($entry = $dir->read())) {
if ($entry != '.' && $entry != '..') {
if (is_dir($path . '/' .$entry)) {
$dirs[] = $entry;

}
}
}

它显示所有文件夹名称,但不按创建日期显示。

Userfiles
-->My Folder
-->My Folder 2

最佳答案

通过使用 Userfiles/* 的路径参数和 GLOB_ONLYDIR 标志调用 glob() 来访问子目录。

然后调用 usort() 并按 ASC 顺序对目录进行排序。*如果您希望它们按 DESC 顺序排列,只需将函数参数切换为 $b,$a

$directories=glob('Userfiles/*',GLOB_ONLYDIR);
usort($directories, function($a,$b){ return filemtime($a) - filemtime($b); });
var_export($directories);

此外,如果您当前的工作目录(您的脚本所在的位置)在“Userfiles”中,那么您只需要这样:glob('*',GLOB_ONLYDIR) 并且输出将是例如:

array ( 0 => 'My Folder', 1 => 'My Folder 2', )

如果您不在您的 CWD 中,则在调用 glob() 之前调用 chdir() 进行移动。

附注从 PHP7.4 开始,您可以使用箭头函数语法:

usort($directories, fn($a, $b) => filemtime($a) <=> filemtime($b));  // sort ASC

关于PHP获取文件夹名称按创建日期排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48788899/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com