当前位置:  开发笔记 > 编程语言 > 正文

glob() - 按日期排序

如何解决《glob()-按日期排序》经验,为你挑选了3个好方法。

我正在尝试按日期顺序显示一个文件数组(最后修改).

我已经完成了这个购买循环数组并将其排序到另一个数组,但是有更简单(更有效)的方法吗?



1> Jay..:

为了后代,如果在接受的答案中链接的论坛帖子丢失或某些人不清楚,所需的相关代码是:


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


工作得很漂亮.我想要相反的顺序,所以我在函数定义字段中用$ b换了$ a.谢谢Jay!
我刚刚用过这个.对于后人确实!
如果您使用的是PHP 5.3.0或更高版本,则应使用本机匿名函数.http://php.net/create_function
每次进行比较时,此代码都在访问文件系统(每个文件多次).根据文件系统的位置,可能会非常慢.此外,如果在排序期间写入任何文件,则更改文件时间可能会导致奇怪的排序结果,具体取决于usort使用的算法.我会推荐[其他答案](http://stackoverflow.com/a/3298787/706054),这可以避免所有这些问题.

2> Alf Eaton..:


@ Okonomiyaki3000:我取代了你的downvote,因为它是无知的.

3> fusion3k..:

此解决方案与接受的答案相同,使用匿名函数1更新:

$myarray = glob("*.*");

usort( $myarray, function( $a, $b ) { return filemtime($a) - filemtime($b); } );

1 2010年,PHP中引入了匿名函数.原始答案是2008年.


由于现在是2019年,这应该是公认的答案。PHP 7不再允许“ create_function” ..因此,最好的解决方案是使用匿名函数(或引用)
推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有