🔁 Invertire l'Ordine di un Array con array_reverse() in PHP
La funzione array_reverse() serve per invertire l’ordine degli elementi di un array.
A differenza di shuffle(), che mescola in modo casuale, array_reverse() crea un nuovo array
con gli elementi nell’ordine opposto rispetto a quello originale.
Puoi anche scegliere se mantenere le chiavi originali o se riassegnarle da 0 in poi.
1. Sintassi
array_reverse(array, preserve_keys);
- array → l’array da invertire.
- preserve_keys (opzionale) → se impostato su
true, le chiavi vengono mantenute. - Ritorna: un nuovo array con l’ordine invertito.
2. Esempio base
<?php
$numeri = [1, 2, 3, 4, 5];
$invertito = array_reverse($numeri);
print_r($invertito);
?>
Array
(
[0] => 5
[1] => 4
[2] => 3
[3] => 2
[4] => 1
)
L’array viene invertito, ma le chiavi vengono riassegnate automaticamente da 0 a n.
3. Mantenere le chiavi originali
Puoi mantenere le chiavi originali passando true come secondo parametro:
<?php
$studenti = [
"Luca" => 25,
"Anna" => 28,
"Marco" => 22
];
$invertito = array_reverse($studenti, true);
print_r($invertito);
?>
Array
(
[Marco] => 22
[Anna] => 28
[Luca] => 25
)
Le chiavi testuali (Luca, Anna, Marco) vengono mantenute, ma l’ordine è invertito.
4. Differenza con altre funzioni simili
| Funzione | Azione | Ordine | Chiavi preservate |
|---|---|---|---|
| sort() | Ordina per valore | Crescente | No |
| rsort() | Ordina per valore | Decrescente | No |
| array_reverse() | Inverte l’ordine | Inverso | Opzionale |
| shuffle() | Mescola casualmente | Casuale | No |
5. Applicazioni pratiche
- Mostrare gli elementi più recenti per primi.
- Invertire l’ordine di un elenco di risultati o dati caricati da un database.
- Riprodurre una sequenza al contrario (es. cronologia, log, playlist).
LABORATORIO
Invertire l’ordine di un array con array_reverse()
In questo laboratorio imparerai a usare array_reverse() per invertire l’ordine di numeri, parole o array associativi. Vedrai come mantenere o meno le chiavi originali.
- Editor di codice PHP (VS Code, Notepad++)
- Server locale (XAMPP, MAMP, Laragon)
- Browser per testare i risultati
1 Invertire un array numerico
Crea un file chiamato array-reverse.php e inserisci il codice seguente:
<?php
$numeri = [10, 20, 30, 40, 50];
echo "<h3>Array originale:</h3>";
print_r($numeri);
$invertito = array_reverse($numeri);
echo "<h3>Array invertito:</h3>";
print_r($invertito);
?>
2 Invertire mantenendo le chiavi
Prova ora con un array associativo:
<?php
$studenti = [
"Anna" => 28,
"Marco" => 22,
"Luca" => 25
];
echo "<h3>Array originale:</h3>";
print_r($studenti);
$invertito = array_reverse($studenti, true);
echo "<h3>Array invertito con chiavi preservate:</h3>";
print_r($invertito);
?>
3 Applicazione pratica: lista di messaggi
Simuliamo una lista di messaggi dove vogliamo mostrare i più recenti in cima:
<?php
$messaggi = [
"Buongiorno!",
"Come stai?",
"Hai completato l'esercizio?",
"Ottimo lavoro!"
];
$messaggi_invertiti = array_reverse($messaggi);
echo "<h3>Messaggi (dal più recente al più vecchio):</h3>";
foreach ($messaggi_invertiti as $m) {
echo "- " . $m . "<br>";
}
?>
4 Test e analisi
- Esegui gli script nel browser e osserva l'ordine degli elementi.
- Prova con
preserve_keys = trueper mantenere le chiavi. - Combina
array_reverse()conshuffle()per creare variazioni dinamiche. - Usa questa funzione per visualizzare i dati più recenti per primi.