PHP: diferencia entre array_merge y array_merge_recursive

En este post te voy a explicar la diferencia entre dos funciones de PHP que sirven para combinar arreglos: array_merge y array_merge_recursive.

En resumen, la diferencia es que array_merge combina arreglos y si encuentra claves repetidas toma el valor del último arreglo, y array_merge_recursive crea un array nuevo cuando encuentra claves repetidas.

Estoy seguro de que lo vas a entender mejor con un ejemplo que demuestra la diferencia entre array_merge_recursive y array_merge.

Diferencia entre array_merge y array_merge_recursive en PHP

Como lo dije, ambas funciones combinan arreglos.

Si array_merge encuentra claves o índices repetidos, el valor en el arreglo nuevo será el último que encuentre.

Veamos el siguiente ejemplo:

En ambos arreglos tenemos un valor en ["sitio_web"] pero como array_merge toma el último valor encontrado, toma el del segundo arreglo; es decir, descarta los anteriores.

Se encuentra una gran diferencia al usar array_merge_recursive, veamos el ejemplo:

En el nuevo arreglo, dentro de la clave ["sitio_web"] tenemos otro arreglo que tiene lo valores repetidos.

Esa es la diferencia entre array_merge y array_merge_recursive en PHP.

Puedes probar el ejemplo completo aquí.