🔢 Ordinare un Array con sort() in PHP
La funzione sort() in PHP serve per ordinare un array in ordine crescente secondo i valori contenuti.
Gli indici numerici vengono riassegnati automaticamente a partire da 0.
Questa funzione è ideale per ordinare liste semplici di numeri o stringhe (array indicizzati).
1. Sintassi
sort(array, sort_flags);
- array → l’array da ordinare.
- sort_flags (opzionale) → specifica il tipo di ordinamento (alfabetico, numerico, naturale, ecc.).
2. Esempio base: ordinamento alfabetico
<?php
$frutti = ["Banana", "Mela", "Arancia", "Kiwi"];
sort($frutti);
print_r($frutti);
?>
Array
(
[0] => Arancia
[1] => Banana
[2] => Kiwi
[3] => Mela
)
Come puoi vedere, l’array è stato riordinato alfabeticamente e gli indici sono stati riassegnati.
3. Ordinamento numerico
<?php
$numeri = [45, 12, 9, 100, 3];
sort($numeri);
print_r($numeri);
?>
Array
(
[0] => 3
[1] => 9
[2] => 12
[3] => 45
[4] => 100
)
4. Attenzione agli indici
La funzione sort() perde le chiavi originali dell’array e riassegna indici numerici da 0.
Se vuoi mantenere le chiavi, dovrai usare asort() (che vedremo in seguito).
5. Parametro opzionale: sort_flags
Il secondo parametro serve per controllare il tipo di confronto. Alcuni valori utili:
| Flag | Descrizione |
|---|---|
| SORT_REGULAR | Ordinamento standard (predefinito) |
| SORT_NUMERIC | Confronta i valori come numeri |
| SORT_STRING | Confronta i valori come stringhe |
| SORT_NATURAL | Ordina come una persona leggerebbe (es. file1, file2, file10) |
<?php
$file = ["file2.txt", "file10.txt", "file1.txt"];
sort($file, SORT_NATURAL);
print_r($file);
?>
Array
(
[0] => file1.txt
[1] => file2.txt
[2] => file10.txt
)
LABORATORIO
Ordinare gli array con sort()
In questo laboratorio imparerai a usare la funzione sort() per ordinare numeri e parole in ordine crescente. Vedremo anche la differenza tra ordinamento alfabetico, numerico e naturale.
- Editor di codice PHP (VS Code, Notepad++)
- Server locale (XAMPP, MAMP, Laragon)
- Browser per visualizzare i risultati
1 Ordinare parole
Crea un file chiamato ordinamento-sort.php e inserisci il seguente codice:
<?php
$parole = ["Pera", "Mela", "Arancia", "Banana"];
echo "<h3>Array originale:</h3>";
print_r($parole);
sort($parole);
echo "<h3>Array ordinato:</h3>";
print_r($parole);
?>
2 Ordinare numeri
Prova ora con un array di numeri:
<?php
$numeri = [40, 5, 15, 100, 2];
echo "<h3>Prima dell'ordinamento:</h3>";
print_r($numeri);
sort($numeri);
echo "<h3>Dopo l'ordinamento:</h3>";
print_r($numeri);
?>
3 Ordinamento naturale di stringhe
Confronta la differenza tra ordinamento normale e naturale:
<?php
$file = ["file2.txt", "file10.txt", "file1.txt"];
echo "<h3>Ordinamento standard:</h3>";
sort($file);
print_r($file);
$file = ["file2.txt", "file10.txt", "file1.txt"];
echo "<h3>Ordinamento naturale:</h3>";
sort($file, SORT_NATURAL);
print_r($file);
?>
4 Test e analisi
- Esegui i vari esempi nel browser.
- Osserva come cambiano gli indici e l’ordine dei valori.
- Prova ad aggiungere parole maiuscole o minuscole e nota la differenza (le maiuscole vengono prima per ordine ASCII).
- Confronta
sort()conrsort()(che ordina in senso inverso).