W3docs

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

php— editable, runs on the server

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

php— editable, runs on the server

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

php— editable, runs on the server

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_map mantiene le chiavi originali. Con due o più array, il risultato viene re-indicizzato con chiavi intere sequenziali, quindi le chiavi string vanno perse.
  • array_map non modifica l'array originale. Restituisce sempre un nuovo array. Se vuoi trasformare un array sul posto, usa array_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_map per trasformare ogni elemento in un nuovo valore (un elemento in input → un elemento in output).
  • Usa array_filter quando vuoi mantenere solo gli elementi che superano un test.
  • Usa array_reduce quando 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.

Esercitazione

Pratica
Cosa è vero riguardo alla funzione array_map() in PHP?
Cosa è vero riguardo alla funzione array_map() in PHP?
Was this page helpful?