(PHP 4, PHP 5, PHP 7, PHP 8)
rsort — Ordena un array en orden decreciente
Ordena array en el lugar según los valores
en orden decreciente.
Nota: Si dos miembros se comparan como iguales, mantienen su orden original. Anterior a PHP 8.0.0, su orden relativo en el array ordenado no está definido.
Nota: Esta función asigna nuevas claves a los elementos en
array. Eliminará todas las claves existentes que hayan podido ser asignadas, en lugar de reordenar las claves.
Nota: Reinicia el puntero interno del array al primer elemento.
arrayEl array de entrada.
flagsflags
puede ser utilizado para modificar el comportamiento de ordenación utilizando estos valores:
Tipo de banderas de ordenación:
SORT_REGULAR - compara los elementos normalmente; los
detalles son descritos en la sección de los operadores de comparación
SORT_NUMERIC - compara los elementos numéricamente
SORT_STRING - compara los elementos como strings
SORT_LOCALE_STRING - compara los elementos como
strings, basado en la configuración regional actual. Esto utiliza la configuración
regional, que puede ser cambiada utilizando setlocale()
SORT_NATURAL - compara los elementos como strings
utilizando el "orden natural" como natsort()
SORT_FLAG_CASE - puede ser combinado (OR a
nivel de bits) con
SORT_STRING o
SORT_NATURAL para ordenar strings sin tener en cuenta la mayúscula/minúscula
Retorna siempre true .
| Versión | Descripción |
|---|---|
| 8.2.0 |
El tipo de retorno es ahora true , anteriormente era bool .
|
Ejemplo #1 Ejemplo con rsort()
<?php
$fruits = array("lemon", "orange", "banana", "apple");
rsort($fruits);
foreach ($fruits as $key => $val) {
echo "$key = $val\n";
}
?>El ejemplo anterior mostrará:
0 = orange 1 = lemon 2 = banana 3 = apple
Las frutas han sido clasificadas en orden alfabético inverso.
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
}
?>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.