En PHP el uso de los operadores toma en cuenta si los operandos son matrices y, en ese caso, tienen un comportamiento específico:
La unión de matrices ($a + $b) se realiza de la siguiente manera: se incluyen todos los elementos de la matriz de la izquierda más los elementos de matriz de la derecha que tengan claves no existentes en la primera matriz. Por lo tanto, las claves repetidas no se incluyen. Por ejemplo:
$a = array("azul", "blanco", "rojo"); $b = array("verde", "blanco"); $c = $a + $b; // da como resultado una matriz igual a $a
Pero, si tenemos estas definiciones de matrices el resultado será diferente:
$a = array("azul", "blanco", "rojo"); $b = array(2 => "verde", "blanco"); $c = $a + $b; // da como resultado una matriz igual a $a + el elemento "blanco". // El elemento "verde" no se incluye porque tiene clave 2, que es // la clave del elemento "rojo" // array(4) { [0]=> string(4) "azul" [1]=> string(6) "blanco" [2]=> // string(4) "rojo" [3]=> string(6) "blanco" }
Tal como se puede observar el valor "blanco" está dos veces, pero eso no importa porque lo que se compara en la unión de matrices son las claves y no los valores.