Order this array by date modified?

前端 未结 2 887
南方客
南方客 2020-12-21 12:23

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

相关标签:
2条回答
  • 2020-12-21 13:07

    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.

    0 讨论(0)
  • 2020-12-21 13:13

    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.

    0 讨论(0)
提交回复
热议问题