Search code examples
phparraysfilesortingarray-reverse

In PHP how to sort a file in reverse?


i have a text (text.txt) file like this:

shir
beer
geer
deer

i have also a php page with that source:

<?php
foreach (glob("*.txt") as $filename) {   
    $file = $filename;
    $contents = file($file); 
    $reverse = array_reverse($file, true);
    $string = implode("<br>" , $contents);
    echo $string;
    echo "<br></br>";
}
?>

I want that in the php page it will show:

deer
geer
beer
shir

from the end of the file to the beginning.
thank you


Solution

  • Looks like you are reversing the file name and not the contents.

    Do

    $reverse = array_reverse($content); // you can drop 2nd arg.
    $string = implode("<br>" , $reverse);
    

    in place of

    $reverse = array_reverse($file, true); 
    $string = implode("<br>" , $contents);
    

    Also you can remove the temp variables from you script and do:

    foreach (glob("*.txt") as $filename) {   
        echo implode("<br>" , array_reverse(file($filename))) . "<br></br>";
    }