glob() - 按上次修改的日期时间戳对文件数组进行排序

2022-08-30 09:37:11

我正在尝试按日期顺序显示文件数组(上次修改)。

我已经通过数组循环并将其分类到另一个数组中,但是有没有更简单(更有效)的方法来做到这一点?


答案 1

警告自 PHP 7.2.0 起已弃用。强烈建议不要依赖此功能。create_function()

为了子孙后代,如果接受的答案中链接的论坛帖子丢失或不清楚,则需要的相关代码是:

<?php

$myarray = glob("*.*");
usort($myarray, create_function('$a,$b', 'return filemtime($a) - filemtime($b);'));

?>

在我的系统上对此进行了测试,并验证了它是否确实根据需要按文件mtime排序。我也使用了类似的方法(用Python编写)来确定我网站上上次更新的文件。


答案 2
<?php
$items = glob('*', GLOB_NOSORT);
array_multisort(array_map('filemtime', $items), SORT_NUMERIC, SORT_DESC, $items);