search for in the  
<resetshuffle>
Last updated: Thu, 19 May 2005

rsort

(PHP 3, PHP 4, PHP 5)

rsort -- Sort an array in reverse order

Description

bool rsort ( array &array [, int sort_flags] )

This function sorts an array in reverse order (highest to lowest).

Returns TRUE on success or FALSE on failure.

Example 1. rsort() example

<?php
$fruits
= array("lemon", "orange", "banana", "apple");
rsort($fruits);
reset($fruits);
while (list(
$key, $val) = each($fruits)) {
   echo
"$key = $val\n";
}
?>

The above example will output:

0 = orange
1 = lemon
2 = banana
3 = apple

The fruits have been sorted in reverse alphabetical order.

You may modify the behavior of the sort using the optional parameter sort_flags, for details see sort().

See also arsort(), asort(), ksort(), sort(), and usort().



User Contributed Notes
rsort
pshirkey at boosthardware dot com
14-Jan-2005 03:06
I needed a function that would sort a list of files into reversed order based on their modification date.

Here's what I came up with:

function display_content($dir,$ext){

   $f = array();
   if (is_dir($dir)) {
       if ($dh = opendir($dir)) {
           while (($folder = readdir($dh)) !== false) {
               if (preg_match("/\s*$ext$/", $folder)) {
                   $fullpath = "$dir/$folder";
                   $mtime = filemtime ($fullpath);
              
                   $ff = array($mtime => $fullpath);
                   $f = array_merge($f, $ff);
                      
           }           
               }

          

           rsort($f, SORT_NUMERIC);

           while (list($key, $val) = each($f)) {
               $fcontents = file($val, "r");
               while (list($key, $val) = each($fcontents))
                   echo "$val\n";
           }

       }
   }
      
       closedir($dh);
}

Call it like so:

display_content("folder","extension");
ray at non-aol dot com
02-Nov-2004 09:49
Like sort(), rsort() assigns new keys for the elements in array. It will remove any existing keys you may have assigned, rather than just reordering the keys.  This means that it will destroy associative keys.

$animals = array("dog"=>"large",  "cat"=>"medium",  "mouse"=>"small");
print_r($animals);
//Array ( [dog] => large [cat] => medium [mouse] => small )

rsort($animals);
print_r($animals);
//Array ( [0] => small [1] => medium [2] => large )

Use KSORT() or KRSORT() to preserve associative keys.
rnk-php at kleckner dot net
17-Jun-2003 02:37
Apparently rsort does not put arrays with one value back to zero.  If you have an array like: $tmp = array(9 => 'asdf') and then rsort it, $tmp[0] is empty and $tmp[9] stays as is.
slevy1 at pipeline dot com
13-Jun-2001 01:15
I thought rsort was working successfully or on a multi-dimensional array of strings that had first been sorted with usort(). But, I noticed today that the array  was only partially in descending order.  I tried array_reverse on it and that seems to have solved things.

<resetshuffle>
 Last updated: Thu, 19 May 2005
Copyright © 2001-2005 The PHP Group
All rights reserved.
This unofficial mirror is operated at: The Server Pages
Last updated: Thu May 19 17:35:34 2005 CDT