function drupal_array_merge_deep_array

7.x drupal_array_merge_deep_array($arrays)

Merges multiple arrays, recursively, and returns the merged array.

This function is equivalent to drupal_array_merge_deep(), except the input arrays are passed as a single array parameter rather than a variable parameter list.

The following are equivalent:

The following are also equivalent:

See also


3 calls to drupal_array_merge_deep_array()
ajax_render in drupal/includes/
Renders a commands array into JSON.
drupal_array_merge_deep in drupal/includes/
Merges multiple arrays, recursively, and returns the merged array.
drupal_get_js in drupal/includes/
Returns a themed presentation of all JavaScript code for the current page.


drupal/includes/, line 2139
Functions that need to be loaded on every Drupal request.


function drupal_array_merge_deep_array($arrays) {
  $result = array();

  foreach ($arrays as $array) {
    foreach ($array as $key => $value) {
      // Renumber integer keys as array_merge_recursive() does. Note that PHP
      // automatically converts array keys that are integer strings (e.g., '1')
      // to integers.
      if (is_integer($key)) {
        $result[] = $value;
      // Recurse when both values are arrays.
      elseif (isset($result[$key]) && is_array($result[$key]) && is_array($value)) {
        $result[$key] = drupal_array_merge_deep_array(array($result[$key], $value));
      // Otherwise, use the latter value, overriding any previous value.
      else {
        $result[$key] = $value;

  return $result;