Como mesclar dois arrays no PHP?
No PHP, mesclar arrays é uma tarefa comum ao trabalhar com listas de dados, combinando valores de diferentes fontes. O PHP oferece várias formas de unir arrays, como array_merge()
, array_merge_recursive()
e o operador +
.
Mesclando arrays com array_merge()
A função array_merge()
combina os elementos de dois ou mais arrays:
<?php
$array1 = ["a", "b", "c"];
$array2 = ["d", "e", "f"];
$resultado = array_merge($array1, $array2);
print_r($resultado);
?>
Saída:
Array ( [0] => a [1] => b [2] => c [3] => d [4] => e [5] => f )
Aqui, os elementos dos dois arrays foram mesclados em um único array.
Mesclando arrays associativos com array_merge()
Se houver chaves repetidas, array_merge()
sobrescreve os valores do primeiro array pelos do segundo:
<?php
$dados1 = ["nome" => "Carlos", "idade" => 30];
$dados2 = ["idade" => 25, "cidade" => "São Paulo"];
$resultado = array_merge($dados1, $dados2);
print_r($resultado);
?>
Saída:
Array ( [nome] => Carlos [idade] => 25 [cidade] => São Paulo )
Aqui, a idade
foi sobrescrita pelo segundo array.
Mantendo valores repetidos com array_merge_recursive()
Se quisermos manter todos os valores, podemos usar array_merge_recursive()
:
<?php
$dados1 = ["nome" => "Carlos", "interesses" => "PHP"];
$dados2 = ["interesses" => "JavaScript"];
$resultado = array_merge_recursive($dados1, $dados2);
print_r($resultado);
?>
Saída:
Array ( [nome] => Carlos [interesses] => Array ( [0] => PHP [1] => JavaScript ) )
Agora, interesses
virou um array contendo ambos os valores.
Mesclando arrays com o operador +
O operador +
mescla arrays, mas mantém apenas os valores do primeiro array se houver chaves duplicadas:
<?php
$array1 = [1 => "A", 2 => "B"];
$array2 = [2 => "C", 3 => "D"];
$resultado = $array1 + $array2;
print_r($resultado);
?>
Saída:
Array ( [1] => A [2] => B [3] => D )
Aqui, B
foi mantido, e C
foi ignorado, pois a chave 2
já existia no primeiro array.
Quando usar array_merge(), array_merge_recursive() e o operador + no PHP?
Mesclar arrays no PHP é uma técnica essencial para manipulação de listas de dados, sendo útil para combinar informações de diferentes fontes. O array_merge()
é ideal para junções simples, enquanto array_merge_recursive()
preserva valores duplicados. O operador +
pode ser uma alternativa eficiente quando queremos manter as chaves do primeiro array intactas.
Algumas aplicações:
- Combinação de listas de produtos ou usuários
- Junção de configurações de diferentes arquivos
- Fusão de dados de formulários e bancos de dados
- Unificação de arrays para APIs e JSON
Dicas para quem está começando
- Use
array_merge()
para juntar arrays simples. - Se precisar manter valores repetidos, prefira
array_merge_recursive()
. - O operador
+
preserva chaves do primeiro array, então pode ser útil para evitar sobrescrições. - Verifique o tipo de dado esperado antes de escolher a função ideal.
- Teste sempre o resultado da mesclagem para garantir que os dados foram combinados corretamente.
Contribuições de Rafael Nogueira