array_merge une arrays pero a primer nivel, para unir segundos niveles debes recorrerlo, o al menos usar funciones como array_map o array_walk, etc. te recomiendo una lectura al manual de PHP sobre las funciones de array vas a ver muchos ejemplos no solo oficiales sino tambien de usuarios que las han usado.
http://www.php.net/manual/en/book.array.php