Arrays::merge()
\nn\t3::Arrays()->merge();
Merge an associative array recursively with another array.
$addKeys => if false, only keys that also exist in $arr1 are overwritten
$includeEmptyValues => if true, empty values are also included in $arr1
$enableUnsetFeature => if true, __UNSET can be used as a value in $arr2 to delete a value in $arr1
$mergedArray = \nn\t3::Arrays( $arr1 )->merge( $arr2, $addKeys, $includeEmptyValues, $enableUnsetFeature );
$mergedArray = \nn\t3::Arrays( $arr1 )->merge( $arr2 );
$mergedArray = \nn\t3::Arrays()->merge( $arr1, $arr2 );
Copied!
| @return array
Source Code
public function merge() {
$defaultArgs = [
'arr1' => [],
'arr2' => [],
'addKeys' => true,
'includeEmptyValues' => false,
'enableUnsetFeature' => true,
];
$args = func_get_args();
if ($this->initialArgument !== null && !is_array($args[1] ?? '')) {
array_unshift($args, $this->initialArgument );
}
foreach ($defaultArgs as $k=>$v) {
$val = array_shift( $args );
if ($val == null) $val = $v;
${$k} = $val;
}
ArrayUtility::mergeRecursiveWithOverrule($arr1, $arr2, $addKeys, $includeEmptyValues, $enableUnsetFeature );
return $arr1;
}
Copied!