array_merge_recursive() merges
the elements of two or more arrays together so that the
values of one are appended to the end of the previous one. It
returns the resulting array.
If the input arrays have the same string keys, then the
values for these keys are merged together into an array, and
this is done recursively, so that if one of the values is an
array itself, the function will merge it with a corresponding
entry in another array too. If, however, the arrays have the
same numeric key, the later value will not overwrite the
original value, but will be appended.
See also array_merge().