PHP Conference Nagoya 2025

rsort

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

rsortOrdena un array en orden inverso

Descripción

rsort(array &$array, int $sort_flags = SORT_REGULAR): bool

Esta función ordena un array en orden inverso (mayor a menor).

Nota:

Si dos miembros se comparan como iguales, su orden relativo en el array oredenado será indefinido.

Parámetros

array

El array de entrada.

sort_flags

Quizá se necesita cambiar el comportamiento de ordenado usando el parámetro opcional sort_flags, para más información ver sort().

Valores devueltos

Devuelve true en caso de éxito o false en caso de error.

Ejemplos

Ejemplo #1 Ejemplo de rsort()

<?php
$fruits
= array("limón", "naranja", "plátano", "manzana");
rsort($fruits);
foreach (
$fruits as $key => $val) {
echo
"$key = $val\n";
}
?>

El resultado del ejemplo sería:

0 = plátano
1 = naranja
2 = manzana
3 = limón

Las frutas han sido ordenadas alfábeticamente pero en orden inverso.

Notas

Nota: Esta función asigna nuevas clave a los elemenos del array. Eliminará cualquier clave existente que haya sido asignada, en lugar de reordenar las claves.

Ver también

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