This method can be thought of as a hybrid between PHP's array_merge()
and array_merge_recursive(). The difference to the two is that if an
array key contains another array then the function behaves recursive
(unlike array_merge()) but does not do if for keys containing strings
(unlike array_merge_recursive()). Please note: This function will work
with an unlimited amount of arguments and typecasts non-array parameters
into arrays.