Funzione PHP array_values(): Guida Completa
Guida completa alla funzione array_values() di PHP: sintassi, casi d'uso, esempi pratici e confronto con altre funzioni per array.
La funzione array_values() restituisce tutti i valori di un array, reindicizzati con chiavi intere consecutive a partire da 0. È uno degli helper per array più semplici e più utilizzati in PHP: ogni volta che un array presenta lacune nelle chiavi, oppure chiavi stringa che non sono più necessarie, array_values() restituisce un array pulito in stile lista. Questa pagina illustra la sintassi, quando usarla, come si confronta con funzioni simili e fornisce esempi eseguibili.
Cos'è la funzione array_values()?
array_values() è una funzione PHP integrata che riceve un array e restituisce un nuovo array contenente tutti i suoi valori. L'array originale rimane invariato. L'array restituito utilizza sempre chiavi intere sequenziali (0, 1, 2, …), e le chiavi originali — siano esse stringhe o interi non sequenziali — vengono scartate. L'ordine relativo dei valori viene preservato.
Sintassi e valore restituito
array_values(array $array): array$array— l'array di input di cui si vogliono estrarre i valori.- Restituisce un array indicizzato con tutti i valori, reindicizzato a partire da
0.
Come funziona array_values()?
La sintassi è semplice. Ecco un esempio di base:
L'output di questo codice sarebbe:
Array
(
[0] => apple
[1] => banana
[2] => cherry
)Come si vede, la funzione array_values() riceve l'array di input $input e restituisce un nuovo array $output contenente tutti i valori di $input, con nuove chiavi numeriche a partire da zero. Le chiavi originali dell'array di input vengono scartate.
Perché usare array_values()?
La funzione array_values() può essere utile in diverse situazioni. Ad esempio, se si dispone di un array associativo con chiavi non sequenziali, si può usare array_values() per creare un nuovo array con chiavi numeriche sequenziali. Ciò risulta utile quando è necessario eseguire operazioni sui valori dell'array originale che richiedono chiavi sequenziali, come l'ordinamento o la ricerca.
Un altro caso d'uso di array_values() è quando si devono rimuovere le chiavi da un array preservando l'ordine dei valori. Usando semplicemente array_values() sull'array originale, il nuovo array avrà lo stesso ordine di quello originale, ma con chiavi numeriche a partire da zero.
Confronto tra array_values() e altre funzioni PHP
Oltre a array_values(), esistono altre funzioni PHP che svolgono compiti simili. Ecco un breve confronto:
array_keys(): Restituisce un array con tutte le chiavi dell'array di input — il corrispettivo speculare diarray_values().array_flip(): Scambia tutte le chiavi con i valori associati.array_combine(): Crea un nuovo array usando un array per le chiavi e un altro per i valori.array_column(): Restituisce i valori di una singola colonna da un array multidimensionale.
Sebbene queste funzioni siano utili ognuna a modo suo, hanno casi d'uso differenti. array_keys() e array_flip() operano sulle chiavi di un array, mentre array_combine() unisce due array in uno. Per saperne di più sugli array in generale, consulta il capitolo Array PHP.
Buone pratiche per l'uso di array_values()
Ecco alcuni suggerimenti e buone pratiche per usare array_values() in modo efficace:
- Tieni presente che
array_values()scarta le chiavi originali dell'array di input. Se hai bisogno di conservarle, usa una funzione diversa, comearray_keys(). - Se hai un array con chiavi non sequenziali, usa
array_values()per creare un nuovo array con chiavi sequenziali prima di eseguire operazioni che le richiedono. - Usa
array_values()per rimuovere le chiavi da un array preservando l'ordine dei valori. - Quando lavori con array di grandi dimensioni, considera che la creazione di un nuovo array con
array_values()può consumare una quantità significativa di memoria. In questi casi, valuta l'uso di metodi alternativi che non richiedono la creazione di un nuovo array. - Usa convenzioni di denominazione chiare per le variabili, per rendere il codice più leggibile e comprensibile.
Esempi pratici di utilizzo di array_values()
Vediamo ora alcuni esempi pratici di utilizzo di array_values() nel codice PHP.
Esempio 1: Rimozione delle chiavi non numeriche da un array
Supponiamo di avere un array associativo con chiavi non numeriche e di voler rimuovere le chiavi creando un nuovo array con chiavi numeriche sequenziali. Ecco come farlo con array_values():
Utilizzo della funzione PHP array_values con un array associativo
L'output di questo codice sarebbe:
Array
(
[0] => apple
[1] => banana
[2] => cherry
[3] => date
)Come si vede, array_values() ha creato un nuovo array con chiavi numeriche sequenziali, eliminando le chiavi non numeriche originali.
Esempio 2: Reindicizzazione di un array dopo il filtraggio
Questo è il caso d'uso più comune di array_values() in scenari reali. Funzioni come array_filter() preservano le chiavi originali, quindi la rimozione di elementi lascia lacune nella numerazione. Chiamare array_values() in seguito restituisce una lista pulita, senza lacune:
PHP: reindicizzazione di un array dopo array_filter()
L'output di questo codice sarebbe:
Array
(
[2] => 10
[3] => 15
[4] => 20
)
Array
(
[0] => 10
[1] => 15
[2] => 20
)Si noti come array_filter() mantenga le chiavi originali 2, 3 e 4, mentre array_values() le azzera a 0, 1 e 2. Questo è importante quando in seguito si codifica l'array in JSON (le chiavi intere con lacune diventano un oggetto JSON anziché un array) oppure quando si accede agli elementi in base alla posizione.
Conclusione
array_values() restituisce un nuovo array reindicizzato contenente tutti i valori dell'array di input, scartando le chiavi originali. Usala ogni volta che hai bisogno di un array pulito in stile lista — il più delle volte dopo operazioni di filtraggio, rimozione o ordinamento che lasciano chiavi non sequenziali. Ricorda che non modifica mai l'array originale e che per array molto grandi la copia che crea comporta un costo in termini di memoria da tenere in considerazione.