International PHP Conference Berlin 2025

rsort

(PHP 4, PHP 5, PHP 7, PHP 8)

rsortTrie un tableau en ordre décroissant

Description

rsort(array &$array, int $flags = SORT_REGULAR): true

Trie array sur place suivant les valeurs en ordre décroissant.

Note:

Si deux membres se comparent comme égaux, ils maintiennent leur ordre original. Antérieur à PHP 8.0.0, leur ordre relatif dans le tableau trié n'est pas défini.

Note: Cette fonction assigne de nouvelles clés aux éléments dans array. Elle effacera toutes les clés existantes qui ont pu être assignées, plutôt que de réarranger les clés.

Note:

Réinitialise le pointeur interne du tableau au premier élément.

Liste de paramètres

array

Le tableau d'entrée.

flags

Le deuxième paramètre optionnel flags peut être utilisé pour modifier le comportement de tri en utilisant ces valeurs :

Type de drapeaux de tri :

Valeurs de retour

Retourne toujours true.

Historique

Version Description
8.2.0 Le type de retour est maintenant true, auparavant il était bool.

Exemples

Exemple #1 Exemple avec rsort()

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

L'exemple ci-dessus va afficher :

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

Les fruits ont été classés dans l'ordre alphabétique inverse.

Voir aussi

  • sort() - Trie un tableau en ordre croissant
  • arsort() - Trie un tableau en ordre décroissant et conserve l'association des index
  • krsort() - Trie un tableau en fonction des clés en ordre décroissant
  • Les fonctions de tri des tableaux
add a note

User Contributed Notes 3 notes

up
5
Alex M
19 years ago
A cleaner (I think) way to sort a list of files into reversed order based on their modification date.

<?php
$path
= $_SERVER[DOCUMENT_ROOT]."/files/";
$dh = @opendir($path);

while (
false !== ($file=readdir($dh)))
{
if (
substr($file,0,1)!=".")
$files[]=array(filemtime($path.$file),$file); #2-D array
}
closedir($dh);

if (
$files)
{
rsort($files); #sorts by filemtime

#done! Show the files sorted by modification date
foreach ($files as $file)
echo
"$file[0] $file[1]<br>\n"; #file[0]=Unix timestamp; file[1]=filename
}
?>
up
0
ray at non-aol dot com
20 years ago
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.
up
-4
slevy1 at pipeline dot com
23 years ago
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.
To Top