I\'m trying to display an array of files in order of date (last modified).
I have done this buy looping through the array and sorting it into another array, but is there an easier (more efficient) way to do this?
I\'m trying to display an array of files in order of date (last modified).
I have done this buy looping through the array and sorting it into another array, but is there an easier (more efficient) way to do this?
For the sake of posterity, in case the forum post linked in the accepted answer is lost or unclear to some, the relevant code needed is:
<?php
$myarray = glob(\"*.*\");
usort($myarray, create_function(\'$a,$b\', \'return filemtime($a) - filemtime($b);\'));
?>
Tested this on my system and verified it does sort by file mtime as desired. I used a similar approach (written in Python) for determining the last updated files on my website as well.
<?php
$items = glob(\'*\', GLOB_NOSORT);
array_multisort(array_map(\'filemtime\', $items), SORT_NUMERIC, SORT_DESC, $items);
This solution is same as accepted answer, updated with anonymous function1:
$myarray = glob(\"*.*\");
usort( $myarray, function( $a, $b ) { return filemtime($a) - filemtime($b); } );
1 Anonymous functions have been introduced in PHP in 2010. Original answer is dated 2008.