I have two such arrays.
$array_1 = array(
'array_key' => array(
'array_key_1' => 1,
'array_key_2' => 2,
'array_key_3' => 3,
),
);
$array_2 = array(
'array_key' => array(
'array_key_1' => null,
'array_key_2' => null,
'array_key_3' => null,
'array_key_4' => null,
'array_key_5' => null,
),
);
I would like to create a function to create a new array from these arrays, supplemented by an array whose keys do not exist.
$array_true = array(
'array_key' => array(
'array_key_1' => 1,
'array_key_2' => 2,
'array_key_3' => 3,
'array_key_4' => null,
'array_key_5' => null
),
);
I have created my own function for array_merge, but it does not support recursion, so if there is a better way to write it, I would appreciate your advice.
$array_1 = array(
'array_key' => array(
'array_key_1' => 1,
'array_key_2' => 2,
'array_key_3' => 3,
),
);
$array_2 = array(
'array_key' => array(
'array_key_1' => null,
'array_key_2' => null,
'array_key_3' => null,
'array_key_4' => null,
'array_key_5' => null,
),
);
// Ultimately, I would like to create such a function.
$array_true = array(
'array_key' => array(
'array_key_1' => 1,
'array_key_2' => 2,
'array_key_3' => 3,
'array_key_4' => null,
'array_key_5' => null
),
);
function my_merge_func($array_1,$array_2) {
$merged = array();
foreach ($array_2 as $key => $value) {
if (empty($array_1[ $key ])) {
$merged[ $key ] = $value;
} else {
if (is_array($value)) {
// my_merge_func($array_1,$value);
// I want to make it a recursive process since similar processing continues from here.
foreach ($value as $key_1 => $value_1) {
if (empty($array_1[ $key ][ $key_1 ])) {
$merged[ $key ][ $key_1 ] = $value_1;
} else {
if (is_array($value_1)) {
foreach ($value_1 as $key_2 => $value_2) {
$merged[ $key ][ $key_1 ][ $key_2 ] = $value_2;
}
} else {
$merged[ $key ][ $key_1 ] = $array_1[ $key ][ $key_1 ];
}
}
}
} else {
$merged[ $key ] = $array_1[ $key ];
}
}
}
return $merged;
};
var_dump(my_merge_func($array_1,$array_2));
var_dump($array_true);
var_dump(my_merge_func($array_1,$array_2) === $array_true);
My Answer:
> 'value',
> 'nested_array' => array(
> 'nested_key' => 'nested_value'
> )
);
$array_2 = array(
'array_key' => 'new_value',
'nested_array' => array(
'nested_key' => 'new_nested_value'
)
);
To merge these two arrays recursively, you can use the `array_merge_recursive` function in PHP. Here's how you can do it:
php
$merged_array = array_merge_recursive($array_1, $array_2);
print_r($merged_array);
This will output:
Array
(
[array_key] => Array
(
[0] => value
[1] => new_value
)
[nested_array] => Array
(
[nested_key] => Array
(
[0] => nested_value
[1] => new_nested_value
)
)
)
As you can see, the `array_merge_recursive` function merges the two arrays while preserving the nested structure and combining the values of the same keys.
Rate this post
5 of 5 based on 4688 votesComments