Funzione array_map in PHP: Guida Completa
La funzione array_map in PHP è uno strumento essenziale per trasformare array di dati applicando una callback a ciascun elemento.
La funzione array_map in PHP è uno strumento essenziale per trasformare array di dati. Permette agli sviluppatori di applicare una funzione callback a ogni elemento di un array e di restituire un nuovo array con i risultati. Si tratta di una tecnica versatile e potente per l'elaborazione dei dati in PHP, utilizzabile in un'ampia gamma di applicazioni.
Come funziona array_map?
La sintassi di base della funzione array_map è la seguente:
Sintassi della funzione array_map in PHP
array_map(callback, array1, array2, ...);Qui, l'argomento callback è la funzione che verrà applicata a ogni elemento degli array. Gli altri argomenti sono gli array da elaborare. Considera ad esempio il seguente codice:
Esempio di utilizzo della funzione array_map in PHP
Questo codice definisce una semplice funzione, square, che prende un numero e ne restituisce il quadrato. La funzione array_map viene quindi utilizzata per applicare questa funzione a ogni elemento dell'array $numbers. Il risultato è un nuovo array, $squared, che contiene i quadrati dei numeri originali.
Nota sulle lunghezze degli array: quando vengono passati più array a array_map, l'elaborazione continua fino all'esaurimento dell'array più lungo. Se gli array hanno lunghezze diverse, gli elementi mancanti negli array più corti vengono automaticamente trattati come null.
Nota sulla sintassi moderna: in PHP 7.4+, puoi usare le arrow function per callback concise. Ad esempio: array_map(fn($n) => $n * $n, $numbers);
Esempi pratici di array_map
La funzione array_map è estremamente versatile e può essere utilizzata in molti contesti diversi. Ecco alcuni esempi per farti capire la sua potenza:
Trasformare array di stringhe
PHP - Trasformare array di stringhe con la funzione array_map
In questo esempio, la funzione array_map viene utilizzata per convertire un array di stringhe in maiuscolo. La funzione upper prende una string e ne restituisce la versione in maiuscolo. Quando questa funzione viene applicata a ogni elemento dell'array $words, il risultato è un nuovo array con le versioni in maiuscolo delle parole originali.
Combinare array con array_map
PHP - Combinare array con array_map
In questo esempio, due array, $a e $b, vengono combinati in un terzo array, $c. La funzione sum prende due argomenti e ne restituisce la somma. La funzione array_map viene utilizzata per applicare questa funzione a ogni coppia corrispondente di elementi in $a e $b. Il risultato è un nuovo array, $c, che contiene le somme delle coppie originali.
Unire array con callback null
Se si passa null come callback, array_map unisce gli array — ogni elemento del risultato è un array dei valori corrispondenti di ciascun array di input. Questo è utile per abbinare dati correlati senza scrivere una funzione.
PHP - Unire array con array_map e callback null
<?php
$ids = [1, 2, 3];
$names = ['Alice', 'Bob', 'Carol'];
$pairs = array_map(null, $ids, $names);
print_r($pairs);
?>Il risultato è [[1, 'Alice'], [2, 'Bob'], [3, 'Carol']] — un array interno per ogni riga.
Attenzione: aspetti da tenere a mente
- Le chiavi vengono preservate solo con un singolo array. Quando si passa un solo array,
array_mapmantiene le chiavi originali. Con due o più array, il risultato viene re-indicizzato con chiavi intere sequenziali, quindi le chiavi string vanno perse. array_mapnon modifica l'array originale. Restituisce sempre un nuovo array. Se vuoi trasformare un array sul posto, usaarray_walk.- La callback deve essere richiamabile. Passa il nome di una funzione come string (
'square'), una funzione anonima, una arrow function, o un array[$object, 'method']. Consulta le funzioni callback PHP per l'elenco completo delle forme accettate.
Quando usare array_map rispetto ad altre funzioni array
- Usa
array_mapper trasformare ogni elemento in un nuovo valore (un elemento in input → un elemento in output). - Usa
array_filterquando vuoi mantenere solo gli elementi che superano un test. - Usa
array_reducequando vuoi ridurre l'array a un singolo valore, come una somma o una string concatenata.
Conclusione
La funzione array_map in PHP è uno strumento incredibilmente potente per trasformare array di dati. Che tu stia convertendo stringhe in maiuscolo, combinando array o eseguendo altri tipi di calcoli, array_map è lo strumento ideale per il lavoro. Grazie alla sua sintassi flessibile e alla capacità di lavorare con più array contemporaneamente, è una funzione indispensabile per qualsiasi sviluppatore PHP.