glob() – 按datesorting

我试图以date(最后修改)的顺序显示文件的数组。

我已经完成了这个循环遍历数组,并将其sorting到另一个数组,但有没有更容易(更有效率)的方式来做到这一点?

为了后人的缘故,如果接受答案中链接的论坛post丢失或者不清楚的话,需要的相关代码是:

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

在我的系统上进行了testing,并validation它按照需要按文件mtime进行sorting。 我使用了类似的方法(用Python编写)来确定我网站上的最近更新的文件。

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

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

 $myarray = glob("*.*"); usort( $myarray, function( $a, $b ) { return filemtime($a) - filemtime($b); } ); 

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