1 bootstrap.inc backdrop_array_merge_deep_array($arrays)

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

This function is equivalent to backdrop_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

backdrop_array_merge_deep()

File

core/includes/bootstrap.inc, line 2723
Functions that need to be loaded on every Backdrop request.

Code

function backdrop_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] = backdrop_array_merge_deep_array(array($result[$key], $value));
      }
      // Otherwise, use the latter value, overriding any previous value.
      else {
        $result[$key] = $value;
      }
    }
  }

  return $result;
}