🧩 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
falsese 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
| Funzione | Descrizione | Richiede stessa lunghezza |
|---|---|---|
| array_combine() | Combina due array in chiave → valore | Sì |
| array_merge() | Unisce array aggiungendo elementi in sequenza | No |
| array_map() | Applica una funzione ai valori di più array | Dipende 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.
- Editor di codice PHP (VS Code, Notepad++)
- Server locale (XAMPP, MAMP, Laragon)
- Browser per testare i risultati
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.