(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)
array_merge_recursive — Merge one or more arrays recursively
DescriptionIf the input arrays have the same string keys, then the values for these keys are merged together into an array, and this is done recursively, so that if one of the values is an array itself, the function will merge it with a corresponding entry in another array too. If, however, the arrays have the same numeric key, the later value will not overwrite the original value, but will be appended.
Parametersarrays
Variable list of arrays to recursively merge.
An array of values resulted from merging the arguments together. If called without any arguments, returns an empty array.
Changelog Version Description 7.4.0 This function can now be called without any parameter. Formerly, at least one parameter has been required. ExamplesExample #1 array_merge_recursive() example
<?php
$ar1 = array("color" => array("favorite" => "red"), 5);
$ar2 = array(10, "color" => array("favorite" => "green", "blue"));
$result = array_merge_recursive($ar1, $ar2);
print_r($result);
?>
The above example will output:
Array ( [color] => Array ( [favorite] => Array ( [0] => red [1] => green ) [0] => blue ) [0] => 5 [1] => 10 )gabriel dot sobrinho at gmail dot com ¶
16 years ago
I refactored the Daniel's function and I got it:
<?php
function array_merge_recursive_distinct ( array &$array1, array &$array2 )
{
$merged = $array1;
foreach (
$array2 as $key => &$value )
{
if ( is_array ( $value ) && isset ( $merged [$key] ) && is_array ( $merged [$key] ) )
{
$merged [$key] = array_merge_recursive_distinct ( $merged [$key], $value );
}
else
{
$merged [$key] = $value;
}
}
return
$merged;
}
?>
This fix the E_NOTICE when the the first array doesn't have the key and the second array have a value which is a array.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4