fork download
  1. <?php
  2.  
  3. $files=[
  4. "01012016.txt", "01012017.txt",
  5. "01012018.txt", "01012019.txt",
  6. "01012020.txt", "01012016.txt",
  7. "02012016.txt", "03012016.txt",
  8. "13092020.txt"
  9. ];
  10.  
  11.  
  12. print_r($files);
  13.  
  14. $files = array_map(function($file){
  15. $obj = new stdClass;
  16. $obj->file = $file;
  17.  
  18. $file_name = pathinfo($file)['filename'];
  19. $obj->date = DateTime::createFromFormat(
  20. 'dmY', $file_name)->format('Ymd');
  21. return $obj;
  22. }, $files);
  23.  
  24. uasort($files, function($a, $b) {
  25. return strcmp($a->date, $b->date);
  26. });
  27.  
  28.  
  29. print_r($files);
  30.  
  31. $sorted_files = [];
  32.  
  33. foreach($files as $f)
  34. {
  35. $sorted_files[] = $f->file;
  36. }
  37.  
  38. print_r($sorted_files);
  39.  
Success #stdin #stdout 0.02s 24568KB
stdin
Standard input is empty
stdout
Array
(
    [0] => 01012016.txt
    [1] => 01012017.txt
    [2] => 01012018.txt
    [3] => 01012019.txt
    [4] => 01012020.txt
    [5] => 01012016.txt
    [6] => 02012016.txt
    [7] => 03012016.txt
    [8] => 13092020.txt
)
Array
(
    [0] => stdClass Object
        (
            [file] => 01012016.txt
            [date] => 20160101
        )

    [5] => stdClass Object
        (
            [file] => 01012016.txt
            [date] => 20160101
        )

    [6] => stdClass Object
        (
            [file] => 02012016.txt
            [date] => 20160102
        )

    [7] => stdClass Object
        (
            [file] => 03012016.txt
            [date] => 20160103
        )

    [1] => stdClass Object
        (
            [file] => 01012017.txt
            [date] => 20170101
        )

    [2] => stdClass Object
        (
            [file] => 01012018.txt
            [date] => 20180101
        )

    [3] => stdClass Object
        (
            [file] => 01012019.txt
            [date] => 20190101
        )

    [4] => stdClass Object
        (
            [file] => 01012020.txt
            [date] => 20200101
        )

    [8] => stdClass Object
        (
            [file] => 13092020.txt
            [date] => 20200913
        )

)
Array
(
    [0] => 01012016.txt
    [1] => 01012016.txt
    [2] => 02012016.txt
    [3] => 03012016.txt
    [4] => 01012017.txt
    [5] => 01012018.txt
    [6] => 01012019.txt
    [7] => 01012020.txt
    [8] => 13092020.txt
)