public static function NestedArray::mergeDeepArray in Render cache 7.2
Merges multiple arrays, recursively, and returns the merged array.
This function is equivalent to NestedArray::mergeDeep(), except the input arrays are passed as a single array parameter rather than a variable parameter list.
The following are equivalent:
- NestedArray::mergeDeep($a, $b);
 - NestedArray::mergeDeepArray(array($a, $b));
 
The following are also equivalent:
- call_user_func_array('NestedArray::mergeDeep', $arrays_to_merge);
 - NestedArray::mergeDeepArray($arrays_to_merge);
 
See also
1 call to NestedArray::mergeDeepArray()
- NestedArray::mergeDeep in tests/
lib/ Drupal/ Component/ Utility/ NestedArray.php  - Merges multiple arrays, recursively, and returns the merged array.
 
File
- tests/
lib/ Drupal/ Component/ Utility/ NestedArray.php, line 324  - Contains Drupal\Component\Utility\NestedArray.
 
Class
- NestedArray
 - Provides helpers to perform operations on nested arrays and array keys of variable depth.
 
Namespace
Drupal\Component\UtilityCode
public static function mergeDeepArray(array $arrays, $preserve_integer_keys = FALSE) {
  $result = array();
  foreach ($arrays as $array) {
    foreach ($array as $key => $value) {
      // Renumber integer keys as array_merge_recursive() does unless
      // $preserve_integer_keys is set to TRUE. Note that PHP automatically
      // converts array keys that are integer strings (e.g., '1') to integers.
      if (is_integer($key) && !$preserve_integer_keys) {
        $result[] = $value;
      }
      elseif (isset($result[$key]) && is_array($result[$key]) && is_array($value)) {
        $result[$key] = self::mergeDeepArray(array(
          $result[$key],
          $value,
        ), $preserve_integer_keys);
      }
      else {
        $result[$key] = $value;
      }
    }
  }
  return $result;
}