🔽 Ordinare un Array in Ordine Decrescente con rsort() in PHP
La funzione rsort() serve per ordinare un array in ordine decrescente (dal più grande al più piccolo, o dalla Z alla A).
È l’opposto di sort(), e come quella reindicizza automaticamente gli elementi partendo da 0.
1. Sintassi
rsort(array, sort_flags);
- array → l’array da ordinare.
- sort_flags (opzionale) → definisce il tipo di confronto (numerico, stringa, naturale...).
2. Esempio base: ordinamento alfabetico inverso
<?php
$frutti = ["Banana", "Mela", "Arancia", "Kiwi"];
rsort($frutti);
print_r($frutti);
?>
Array
(
[0] => Mela
[1] => Kiwi
[2] => Banana
[3] => Arancia
)
L’array è stato riordinato in senso opposto (Z → A).
Come in sort(), gli indici originali vengono persi e riassegnati.
3. Ordinamento numerico decrescente
<?php
$numeri = [45, 12, 9, 100, 3];
rsort($numeri);
print_r($numeri);
?>
Array
(
[0] => 100
[1] => 45
[2] => 12
[3] => 9
[4] => 3
)
4. Ordinamento con flag
Come sort(), anche rsort() accetta un parametro opzionale per controllare il tipo di ordinamento.
| Flag | Descrizione |
|---|---|
| SORT_REGULAR | Ordinamento standard (predefinito) |
| SORT_NUMERIC | Ordinamento numerico |
| SORT_STRING | Ordinamento alfabetico |
| SORT_NATURAL | Ordinamento naturale inverso (file10 dopo file2) |
<?php
$file = ["file2.txt", "file10.txt", "file1.txt"];
rsort($file, SORT_NATURAL);
print_r($file);
?>
Array
(
[0] => file10.txt
[1] => file2.txt
[2] => file1.txt
)
5. Differenza tra sort() e rsort()
| Funzione | Tipo di ordinamento | Risultato |
|---|---|---|
| sort() | Crescente | 1, 2, 3, 4... |
| rsort() | Decrescente | 4, 3, 2, 1... |
LABORATORIO
Ordinare gli array in ordine decrescente con rsort()
In questo laboratorio imparerai a usare rsort() per ordinare numeri e parole dal più grande al più piccolo (o dalla Z alla A). Vedrai anche come usare i parametri di ordinamento.
- Editor di codice PHP (VS Code, Notepad++)
- Server locale (XAMPP, MAMP, Laragon)
- Browser per testare i risultati
1 Ordinare parole in ordine inverso
Crea un file chiamato ordinamento-rsort.php e inserisci questo codice:
<?php
$frutti = ["Mela", "Banana", "Arancia", "Kiwi"];
echo "<h3>Array originale:</h3>";
print_r($frutti);
rsort($frutti);
echo "<h3>Array ordinato (Z → A):</h3>";
print_r($frutti);
?>
2 Ordinare numeri in ordine decrescente
Prova ora con un array di numeri:
<?php
$numeri = [10, 50, 3, 25, 7];
echo "<h3>Prima dell'ordinamento:</h3>";
print_r($numeri);
rsort($numeri);
echo "<h3>Dopo l'ordinamento (dal più grande al più piccolo):</h3>";
print_r($numeri);
?>
3 Ordinamento naturale inverso
Prova l'ordinamento naturale (utile per nomi di file o versioni):
<?php
$file = ["file2.txt", "file10.txt", "file1.txt"];
echo "<h3>Ordinamento standard inverso:</h3>";
rsort($file);
print_r($file);
$file = ["file2.txt", "file10.txt", "file1.txt"];
echo "<h3>Ordinamento naturale inverso:</h3>";
rsort($file, SORT_NATURAL);
print_r($file);
?>
4 Test e analisi
- Esegui gli script nel browser e osserva l'ordine dei risultati.
- Nota come
rsort()riassegna gli indici da 0. - Prova a confrontare i risultati con
sort(). - Usa
SORT_NUMERICper forzare il confronto numerico.