Combinar arrays en php

Combinar arrays en php

Para combinar arrays en php se utiliza la función array_merge, de modo que los valores de los últimos arrays, van sobreescribiendo los valores de sus predecesores, o se van anexando a los mismos en el caso de valores sin clave.

Parámetros de array_merge

La función array_merge para combinar arrays en PHP admite el listado de arrays a combinar, y devuelve el array resultante. No necesita en ningún caso que se le indique el número de arrays que le pasaremos por parámetros.

Funcionamiento de array_merge

Esta función se comporta con una pequeña diferencia dependiendo si actúa sobre arrays asociativos o arrays con clave numérica. También se pueden utilizar arrays donde se combinan pares de clave-valor con valores numéricos.

  • Arrays asociativos: Si los arrays a combinar comparten una clave asociativa, el valor que se retornará será el que proporcione el último array que lo contenga de la lista. Cuando uno de los arrays de la lista tiene una clave de la que no dispone ninguno de los anteriores, la clave se anexa al array resultante
  • Arrays numéricos: Las claves numéricas serán reconfiguradas comenzando desde cero e incrementando su valor de uno en uno, siguiendo el orden de entrada de los arrays.

Por lo tanto no existe ningún requisito para combinar arrays en PHP, ya que la función no distingue externamente si le estamos pasando un array asociativo o numérico, si no que lo resuelve internamente.

Ejemplos de uso para combinar arrays en PHP

Si tenemos los dos siguientes arrays:

$array1 = array("color" => "red", 2, 4);

$array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4);

El resultado será el siguiente:

resultado combinar arrays en php

 A continuación te explico por orden cómo se va componiendo el array resultante:

  1. [color]=>red: Al ser un par de clave valor que no existe en el array resultante, se quedaría tal cual.
  2. 2: Al ser un valor, y no haber ninguno con anterioridad, se establece en la posición [0] del array.
  3. 4: También es un valor suelto, por lo que se añade un nuevo índice numérico al array, en este caso el [1].
  4. a: A pesar de ser un carácter, en el array original tiene una clave numérica, que es descartada, y así, este valor pasa de estar en la posición [0] a ser anexado al array resultante y pasar a ocupar en este caso la posición [2].
  5. b: Ocurre lo mismo que con el anterior dato, y se añade a la posición [3].
  6. [color]=>green: En este caso, ya hay una pareja de clave-valor donde la clave es “color”, por lo que el valor “green” sobreescribe el anterior valor almacenado, que era “red”.
  7. [shape]=>trapezoid: Se trata de una pareja clave-valor, pero no existe ninguna clave que sea “shape”, de modo que se anexa este par al array final
  8. 4: Aunque ya existe un valor igual, al ser solo un valor, tal y como hemos visto al principio del post, únicamente se añade como índice numérico, en este caso en la posición [4] que es la siguiente.

Más información sobre combinar arrays en PHP

Para obtener más información sobre esta función puedes consultar la página oficial de PHP a través de este link.

No olvides comentar, compartir o puntuar este post.