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年。