🤝 Unire più Array con array_merge() in PHP
La funzione array_merge() serve per unire due o più array in un unico array combinato.
Gli elementi vengono aggiunti in sequenza, seguendo l’ordine con cui vengono passati alla funzione.
È una funzione molto utile quando vuoi fondere dati provenienti da più fonti o creare liste cumulative.
1. Sintassi
array_merge(array1, array2, ...);
- array1, array2, ... → gli array da unire.
- Ritorna: un nuovo array contenente tutti gli elementi combinati.
2. Esempio base: unire due array numerici
<?php
$a = [1, 2, 3];
$b = [4, 5, 6];
$unito = array_merge($a, $b);
print_r($unito);
?>
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
[5] => 6
)
Gli elementi dei due array sono stati uniti in un unico array sequenziale.
3. Unire più array
Puoi unire anche più di due array contemporaneamente:
<?php
$a = ["Rosso", "Verde"];
$b = ["Blu", "Giallo"];
$c = ["Viola", "Arancione"];
$colori = array_merge($a, $b, $c);
print_r($colori);
?>
Array
(
[0] => Rosso
[1] => Verde
[2] => Blu
[3] => Giallo
[4] => Viola
[5] => Arancione
)
4. Unire array associativi
Quando le chiavi sono **stringhe**, array_merge() sovrascrive i valori con la stessa chiave:
<?php
$a = ["nome" => "Luca", "eta" => 25];
$b = ["eta" => 30, "citta" => "Roma"];
$unito = array_merge($a, $b);
print_r($unito);
?>
Array
(
[nome] => Luca
[eta] => 30
[citta] => Roma
)
Il valore di eta (25) è stato sovrascritto da quello di b (30).
5. Unire array con chiavi numeriche
Se le chiavi sono numeriche, vengono riassegnate automaticamente in sequenza:
<?php
$a = [10 => "Uno", 20 => "Due"];
$b = [30 => "Tre", 40 => "Quattro"];
$unito = array_merge($a, $b);
print_r($unito);
?>
Array
(
[0] => Uno
[1] => Due
[2] => Tre
[3] => Quattro
)
Le chiavi numeriche originali non vengono mantenute.
6. Mantenere le chiavi originali
Per unire array mantenendo le chiavi numeriche, usa + invece di array_merge():
<?php
$a = [10 => "Uno", 20 => "Due"];
$b = [30 => "Tre", 40 => "Quattro"];
$unito = $a + $b;
print_r($unito);
?>
Array
(
[10] => Uno
[20] => Due
[30] => Tre
[40] => Quattro
)
Questa tecnica è utile quando vuoi mantenere le chiavi personalizzate.
7. Differenze con altre funzioni simili
| Funzione | Descrizione | Mantiene chiavi |
|---|---|---|
| array_merge() | Unisce array, reindicizza chiavi numeriche | No (per chiavi numeriche) |
| array_merge_recursive() | Unisce anche valori con chiavi uguali creando array annidati | Sì |
| + (operatore di unione) | Unisce array mantenendo le chiavi | Sì |
LABORATORIO
Unire più array con array_merge()
In questo laboratorio imparerai a unire più array con array_merge(), gestendo sia array numerici che associativi, e vedrai come cambiano le chiavi.
- Editor di codice PHP (VS Code, Notepad++)
- Server locale (XAMPP, MAMP, Laragon)
- Browser per testare i risultati
1 Unire due array semplici
Crea un file chiamato array-merge.php e inserisci questo codice:
<?php
$a = [1, 2, 3];
$b = [4, 5, 6];
echo "<h3>Array originale A:</h3>";
print_r($a);
echo "<h3>Array originale B:</h3>";
print_r($b);
$unito = array_merge($a, $b);
echo "<h3>Array unito:</h3>";
print_r($unito);
?>
2 Unire array associativi
Ora prova con chiavi testuali:
<?php
$a = ["nome" => "Luca", "eta" => 25];
$b = ["eta" => 30, "citta" => "Roma"];
$unito = array_merge($a, $b);
echo "<h3>Array unito associativo:</h3>";
print_r($unito);
?>
3 Mantenere le chiavi con l’operatore +
Usa l’operatore + per unire senza perdere le chiavi numeriche:
<?php
$a = [10 => "Uno", 20 => "Due"];
$b = [30 => "Tre", 40 => "Quattro"];
$unito = $a + $b;
echo "<h3>Array unito con chiavi mantenute:</h3>";
print_r($unito);
?>
4 Applicazione pratica: unire elenchi
Simuliamo la fusione di due liste (es. prodotti o utenti):
<?php
$lista1 = ["Mario", "Luca", "Anna"];
$lista2 = ["Giulia", "Paolo", "Sara"];
$completa = array_merge($lista1, $lista2);
echo "<h3>Lista utenti completa:</h3>";
foreach ($completa as $utente) {
echo "- " . $utente . "<br>";
}
?>
5 Test e analisi
- Esegui gli esempi nel browser e osserva i risultati.
- Prova a cambiare l’ordine degli array per vedere le differenze di sovrascrittura.
- Usa
array_merge_recursive()per unire chiavi duplicate senza sovrascrivere i valori. - Combina questa funzione con
array_unique()per rimuovere duplicati dopo la fusione.