public static function NestedArray::mergeDeep

You are here

8 NestedArray.php public static NestedArray::mergeDeep()

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

This function is similar to PHP's array_merge_recursive() function, but it handles non-array values differently. When merging values that are not both arrays, the latter value replaces the former rather than merging with it.


$link_options_1 = array('fragment' => 'x', 'attributes' => array('title' => t('X'), 'class' => array('a', 'b')));
$link_options_2 = array('fragment' => 'y', 'attributes' => array('title' => t('Y'), 'class' => array('c', 'd')));

// This results in array('fragment' => array('x', 'y'), 'attributes' => array('title' => array(t('X'), t('Y')), 'class' => array('a', 'b', 'c', 'd'))).
$incorrect = array_merge_recursive($link_options_1, $link_options_2);

// This results in array('fragment' => 'y', 'attributes' => array('title' => t('Y'), 'class' => array('a', 'b', 'c', 'd'))).
$correct = NestedArray::mergeDeep($link_options_1, $link_options_2);


array ...: Arrays to merge.

bool $preserve_integer_keys: (optional) If given, integer keys will be preserved and merged instead of appended.

Return value

array The merged array.

See also


24 calls to NestedArray::mergeDeep()
BlockBase::setConfiguration in core/modules/block/lib/Drupal/block/BlockBase.php
Sets the configuration for this plugin instance.
BlockViewBuilderTest::testBlockViewBuilderAlter in core/modules/block/lib/Drupal/block/Tests/BlockViewBuilderTest.php
Tests block view altering.
Client::__construct in core/lib/Drupal/Core/Http/Client.php
Clients accept an array of constructor parameters.
ConfigurableSearchPluginBase::__construct in core/modules/search/lib/Drupal/search/Plugin/ConfigurableSearchPluginBase.php
Constructs a Drupal\Component\Plugin\PluginBase object.
ContentEntityNormalizer::normalize in core/modules/hal/lib/Drupal/hal/Normalizer/ContentEntityNormalizer.php
Implements \Symfony\Component\Serializer\Normalizer\NormalizerInterface::normalize()

... See full list


core/lib/Drupal/Component/Utility/NestedArray.php, line 303
Contains Drupal\Component\Utility\NestedArray.




Provides helpers to perform operations on nested arrays and array keys of variable depth.


public static function mergeDeep() {
  return self::mergeDeepArray(func_get_args());