array_merge_recursive() funde os elementos de dois ou mais de forma que os elementos de um são colocados no final do array anterior. Retorna esse array resultante.
Se os arrays dados tem as mesmas chaves string, então os valores para uma chave são fundidos em um array, e isso é feito recursivamente, sendo que se um dos valores for um array também, este função irá fundi-lo com os valores correspondentes no array resultante também. Se, no entanto, os arrays tem as mesmas chaves numéricas, o último valor para uma chave não sobrescreverá o valor original, e sim adicionado ao array resultante.
O array resultante será array ("cor" => array ("favorita" => array ("vermelho", "verde"), "azul"), 5, 10).
Veja também array_merge().