Gennaio 10, 2025

array_column() in PHP: Cos’è e A Cosa Serve?

Introduzione

La funzione array_column() in PHP è uno strumento potente e versatile che consente di estrarre una colonna di valori da un array multidimensionale. È particolarmente utile quando si lavora con dati strutturati in array associativi, come i risultati di una query SQL o un file JSON decodificato.

Spiegazione

La funzione array_column() prende tre parametri:

  • array – L’array multidimensionale da cui estrarre i dati.
  • column_key – La chiave della colonna da estrarre. Può essere il nome della chiave associativa o l’indice numerico.
  • index_key (opzionale) – La chiave da utilizzare come chiave dell’array risultante. Se omesso, l’array risultante utilizzerà le chiavi numeriche.

Quando si utilizza

La funzione array_column() è utile quando si desidera ottenere una lista di valori da una colonna specifica di un array multidimensionale. È spesso utilizzata per:

  • Estrarre un elenco di valori da un array di risultati di database.
  • Riorganizzare dati decodificati da JSON.
  • Creare un elenco di valori specifici per ulteriori elaborazioni o visualizzazioni.

Esempi

Vediamo alcuni esempi pratici di utilizzo della funzione array_column().

Esempio 1: Estrarre nomi da un elenco di persone


$people = [
    ['id' => 1, 'name' => 'Mario', 'age' => 30],
    ['id' => 2, 'name' => 'Luigi', 'age' => 25],
    ['id' => 3, 'name' => 'Peach', 'age' => 28],
];

$names = array_column($people, 'name');
print_r($names);

// Output: Array ( [0] => Mario [1] => Luigi [2] => Peach )

Esempio 2: Usare una chiave personalizzata


$people = [
    ['id' => 1, 'name' => 'Mario', 'age' => 30],
    ['id' => 2, 'name' => 'Luigi', 'age' => 25],
    ['id' => 3, 'name' => 'Peach', 'age' => 28],
];

$namesById = array_column($people, 'name', 'id');
print_r($namesById);

// Output: Array ( [1] => Mario [2] => Luigi [3] => Peach )

Esempio 3: Estrarre una colonna non associativa


$records = [
    ['name' => 'Paris', 'country' => 'France'],
    ['name' => 'Berlin', 'country' => 'Germany'],
    ['name' => 'Madrid', 'country' => 'Spain'],
];

$countries = array_column($records, 'country');
print_r($countries);

// Output: Array ( [0] => France [1] => Germany [2] => Spain )

Questi esempi mostrano come array_column() possa semplificare l’estrazione di dati da array complessi, rendendo il codice più leggibile ed efficiente.

Giorgio

Sono un Web Developer con oltre 20 anni di esperienza nello sviluppo di applicazioni web complesse. Specializzato in PHP, gestione di database relazionali e non relazionali, e integrazione di API, realizzo soluzioni robuste e scalabili per soddisfare esigenze aziendali e tecniche. Mi occupo di architetture server-side, ottimizzazione delle performance e automazione dei processi.