I have a php file that is creating a array of everything in my users directory, the array is then being sent back to a iPhone.
The array that my php is creating is o
As Michael Berkowski mentioned, using usort()
is the way to go, but if this is a one-off sorting (i.e. you only need to sort an array this way once in your code), you can use an anonymous function:
usort($files, function ($a, $b){
if (filemtime($a) === filemtime($b)) return 0;
return filemtime($a) < filemtime($b) ? -1 : 1;
});
While not necessary, it does save a function call.
If you need to sort files this way more than once, creating a separate named function is preferable.
Using usort() with a callback which calls filemtime()
...
This is untested, but I believe it will set you on the correct path...
// First define a comparison function to be used as a callback
function filetime_callback($a, $b)
{
if (filemtime($a) === filemtime($b)) return 0;
return filemtime($a) < filemtime($b) ? -1 : 1;
}
// Then sort with usort()
usort($files, "filetime_callback");
This should sort them oldest-first. If you want them newest-first, change <
to >
in the callback return
ternary operation.