method mergeArrays documentation in bbn\X

Merges two or more arrays into one.

Values from later array overwrite the previous array.

Example

X::mergeArrays([1, 'Test'], [2, 'Example']); // array [1, 'Test', 2, 'Example'] $arr1 = ['a' => 1, 'b' => 2]; $arr2 = ['b' => 3, 'c' => 4, 'd' => 5]; $arr3 = ['e' => 6, 'b' => 33]; X::mergeArrays($arr1, $arr2, $arr3) // (array) ['a' => 1, 'b' => 33, 'c' => 4, 'd' => 5, 'e' => 6] function(array $a1, array $a2) { $args = \func_get_args(); if (\count($args) > 2) { for ($i = \count($args) - 1; $i > 1; $i--) { if (!is_array($args[$i])) { throw new Exception('The provided argument must be an array, ' . gettype($args[$i]) . ' given.' ); } $args[$i - 1] = self::mergeArrays($args[$i - 1], $args[$i]); } $a2 = $args[1]; } if ((self::isAssoc($a1) || empty($a1)) && (self::isAssoc($a2) || empty($a2))) { $keys = array_unique(array_merge(array_keys($a1), array_keys($a2))); $r = []; foreach ($keys as $k) { if (!array_key_exists($k, $a1) && !array_key_exists($k, $a2)) { continue; } elseif (!array_key_exists($k, $a2)) { $r[$k] = $a1[$k]; } elseif (!array_key_exists($k, $a1) || !\is_array($a2[$k]) || !\is_array($a1[$k]) || is_numeric(key($a2[$k]))) { $r[$k] = $a2[$k]; } else{ $r[$k] = self::mergeArrays($a1[$k], $a2[$k]); } } } else{ $r = array_merge($a1, $a2); } return $r; }

Merges two or more arrays into one. BBN is a suite of PHP and JS libraries and VueJS components - all open-source! bbn.io, build applications, the quick way

This website uses cookies to ensure you get the best experience on our website.