function drupal_array_merge_deep_array
7.x bootstrap.inc | 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:
- drupal_array_merge_deep($a, $b);
- drupal_array_merge_deep_array(array($a, $b));
The following are also equivalent:
- call_user_func_array('drupal_array_merge_deep', $arrays_to_merge);
- drupal_array_merge_deep_array($arrays_to_merge);
See also
2 calls to drupal_array_merge_deep_array()
- drupal_array_merge_deep in drupal-7.x/
includes/ bootstrap.inc - Merges multiple arrays, recursively, and returns the merged array.
- drupal_get_js in drupal-7.x/
includes/ common.inc - Returns a themed presentation of all JavaScript code for the current page.
File
- drupal-7.x/
includes/ bootstrap.inc, line 2122 - Functions that need to be loaded on every Drupal request.
Code
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;
}