PHP

Combina Array

Funzione array_combine() in PHP: creare un array associativo combinando due array (chiavi e valori) con esempi pratici e laboratorio.


🧩 Creare un Array Associativo con array_combine() in PHP

La funzione array_combine() serve per creare un array associativo utilizzando due array esistenti: uno per le chiavi e l’altro per i valori.

È molto utile quando hai due insiemi di dati paralleli (come nomi e età, o prodotti e prezzi) e vuoi unirli in un’unica struttura chiave → valore.


1. Sintassi

array_combine(keys, values);
  • keys → array che fornisce le chiavi.
  • values → array che fornisce i valori.
  • Ritorna: un array associativo, o false se i due array non hanno la stessa lunghezza.

2. Esempio base

<?php
$chiavi = ["nome", "eta", "citta"];
$valori = ["Luca", 25, "Roma"];

$persona = array_combine($chiavi, $valori);

print_r($persona);
?>

Array
(
    [nome] => Luca
    [eta] => 25
    [citta] => Roma
)

Ogni elemento dell’array $chiavi diventa una chiave, associata al valore corrispondente nello stesso indice di $valori.


3. Attenzione: le dimensioni devono coincidere

Se i due array non hanno la stessa lunghezza, array_combine() genera un errore:


<?php
$a = ["nome", "eta"];
$b = ["Luca"];

$risultato = array_combine($a, $b);

// Errore: entrambi gli array devono avere lo stesso numero di elementi
?>

Soluzione: assicurati sempre che entrambi gli array abbiano lo stesso numero di elementi.


4. Esempio pratico: abbinare studenti e voti

<?php
$studenti = ["Anna", "Marco", "Luca", "Giulia"];
$voti = [28, 30, 25, 27];

$registro = array_combine($studenti, $voti);

print_r($registro);
?>

Array
(
    [Anna] => 28
    [Marco] => 30
    [Luca] => 25
    [Giulia] => 27
)

5. Usare array_combine() con funzioni di elaborazione

Puoi combinare due array anche se i valori provengono da altre funzioni, come range() o explode():


<?php
$lettere = range("A", "E");
$numeri = [1, 2, 3, 4, 5];

$abbinamento = array_combine($lettere, $numeri);

print_r($abbinamento);
?>

Array
(
    [A] => 1
    [B] => 2
    [C] => 3
    [D] => 4
    [E] => 5
)

6. Differenze con altre funzioni
FunzioneDescrizioneRichiede stessa lunghezza
array_combine()Combina due array in chiave → valoreSì
array_merge()Unisce array aggiungendo elementi in sequenzaNo
array_map()Applica una funzione ai valori di più arrayDipende dalla funzione


LABORATORIO

Creare un array associativo con array_combine()

In questo laboratorio imparerai a creare array associativi combinando due array paralleli: uno con le chiavi e uno con i valori.


1 Creare un array chiavi → valori

Crea un file chiamato array-combine.php e inserisci questo codice:


<?php
$chiavi = ["nome", "eta", "citta"];
$valori = ["Luca", 25, "Roma"];

$persona = array_combine($chiavi, $valori);

echo "<h3>Array associativo creato:</h3>";
print_r($persona);
?>
    

2 Associare studenti e voti

Prova ora con un elenco di nomi e voti:


<?php
$studenti = ["Anna", "Marco", "Luca", "Giulia"];
$voti = [28, 30, 25, 27];

$registro = array_combine($studenti, $voti);

echo "<h3>Registro studenti:</h3>";
foreach ($registro as $nome => $voto) {
    echo $nome . ": " . $voto . "<br>";
}
?>
    

3 Creare un array dinamico con range()

Usa la funzione range() per generare automaticamente chiavi e valori:


<?php
$lettere = range("A", "E");
$numeri = range(1, 5);

$abbinamento = array_combine($lettere, $numeri);

echo "<h3>Array A → 1, B → 2, ... :</h3>";
print_r($abbinamento);
?>
    

4 Test e analisi

  • Esegui gli esempi e osserva come vengono combinate le chiavi con i valori.
  • Prova a invertire gli array (array_combine($valori, $chiavi)) per scambiarli.
  • Assicurati che gli array abbiano sempre la stessa lunghezza per evitare errori.
  • Usa questa funzione per costruire velocemente array associativi da dati paralleli.