Come ordinare gli array in PHP con la funzione asort()
Scopri come usare la funzione asort() di PHP per ordinare array per valore in ordine crescente preservando le associazioni chiave-valore.
Come sviluppatore web, potresti trovarti in situazioni in cui è necessario manipolare array nel tuo codice PHP. Una di queste operazioni è l'ordinamento dell'array. La funzione integrata asort() in PHP può essere utilizzata per ordinare un array in base ai suoi valori in ordine crescente. In questo articolo esploreremo come usare la funzione asort(), la sua sintassi ed esempi di utilizzo nel codice.
Sintassi di asort()
La funzione asort() ordina un array in base ai suoi valori in ordine crescente, mantenendo le associazioni chiave-valore. La sintassi della funzione è la seguente:
Sintassi della funzione asort
asort($array, $sorting_type);Il primo argomento $array è l'array da ordinare. Il secondo argomento $sorting_type è facoltativo e specifica il tipo di ordinamento. I valori possibili includono:
SORT_REGULAR- confronta gli elementi normalmenteSORT_NUMERIC- confronta gli elementi numericamenteSORT_STRING- confronta gli elementi come stringSORT_LOCALE_STRING- confronta gli elementi come string in base alla lingua corrente
Se il parametro $sorting_type non viene fornito, viene usato SORT_REGULAR per impostazione predefinita. Nota che asort() modifica l'array originale in place e restituisce true in caso di successo o false in caso di errore — non restituisce un nuovo array ordinato, quindi non scrivere $sorted = asort($array) aspettandosi i dati ordinati in $sorted.
Quando usare asort()
La caratteristica fondamentale che distingue asort() dalla semplice sort() è che mantiene ogni valore associato alla sua chiave originale. Usa asort() quando le chiavi hanno un significato che non puoi permetterti di perdere — ad esempio un array associativo che mappa nomi a punteggi, id a prezzi o nomi utente a timestamp dell'ultimo accesso. Se ordini quel tipo di dati con sort(), PHP elimina le chiavi e reindicizza l'array 0, 1, 2, …, rompendo l'associazione.
Ricorri invece a sort() solo quando l'array è un semplice elenco e le chiavi sono mere posizioni di cui non ti importa.
Esempi di asort()
Ecco alcuni esempi che illustrano come usare la funzione asort() in PHP:
- Ordinamento di un array di string con
asort():
Esempi di asort()
- Ordinamento di un array di interi con
asort():
Ordinamento di un array di interi con asort()
- Ordinamento di un array associativo con
asort():
PHP: ordinamento di un array associativo con asort()
Errori comuni
- Usa
SORT_NUMERICper string numeriche. Con ilSORT_REGULARpredefinito, valori come"10"e"9"potrebbero essere confrontati come string, mettendo"10"prima di"9". PassaSORT_NUMERICquando i valori sono numeri (anche se memorizzati come string) per garantire un ordinamento numerico. - L'ordinamento non è stabile prima di PHP 8.0. In PHP 8.0 e versioni successive, gli elementi uguali mantengono il loro ordine relativo originale; nelle versioni precedenti l'ordine era indefinito.
- Restituisce un boolean, non l'array. Poiché l'ordinamento avviene in place, tratta la variabile originale come risultato.
Funzioni di ordinamento correlate
PHP offre una famiglia di funzioni per l'ordinamento degli array, ognuna delle quali preserva (o scarta) le chiavi in modo diverso e ordina per valore o per chiave:
sort()— ordina per valore crescente, reindicizza le chiavi.rsort()— ordina per valore decrescente, reindicizza le chiavi.arsort()— comeasort()ma in ordine decrescente, mantenendo le associazioni chiave-valore.ksort()/krsort()— ordina per chiave in ordine crescente / decrescente.usort()/uasort()— ordina con una callback di confronto personalizzata.
Consulta la panoramica Sorting Arrays per un confronto affiancato.
Conclusione
La funzione asort() è uno strumento utile per ordinare array in PHP in base ai loro valori in ordine crescente, mantenendo le associazioni chiave-valore. Eccelle ogni volta che le chiavi hanno un significato — ordinare un array associativo di nomi e punteggi, id e prezzi e così via — dove la semplice sort() scarterebbe quelle chiavi. Comprendendo la sua sintassi, i tipi di ordinamento e le funzioni di ordinamento correlate, puoi scegliere lo strumento giusto per ogni attività di ordinamento e scrivere codice PHP più pulito.