PHP合并两个密钥匹配的数组

The*_*ter 1 php arrays

我正在尝试合并主键匹配的两个数组,我尝试使用array_merge但是键只是被覆盖了.

例如,我有这个数组:

$date = '2017-08-01';

$price_arr_1 = array();
$price_arr_1[$date]['adult_1'] = 10;
$price_arr_1[$date]['child_1'] = 2;
print_r($price_arr_1);
Run Code Online (Sandbox Code Playgroud)

哪个输出:

Array ( [2017-08-01] => Array ( [adult_1] => 10 [child_1] => 2 ) ) 
Run Code Online (Sandbox Code Playgroud)

我有这个数组:

$date = '2017-08-01';

$price_arr_2 = array();
$price_arr_2[$date]['adult_2'] = 10;
$price_arr_2[$date]['child_2'] = 2;
print_r($price_arr_2);
Run Code Online (Sandbox Code Playgroud)

哪个输出:

Array ( [2017-08-01] => Array ( [adult_2] => 10 [child_2] => 2 ) ) 
Run Code Online (Sandbox Code Playgroud)

当我尝试合并它们时:

print_r(array_merge($price_arr_1,$price_arr_2));
Run Code Online (Sandbox Code Playgroud)

它输出这个:

Array ( [2017-08-01] => Array ( [adult_2] => 10 [child_2] => 2 ) ) 
Run Code Online (Sandbox Code Playgroud)

我想输出这个:

Array ( [2017-08-01] => Array ( [adult_1] => 10 [adult_2] => 10 [child_1] => 2 [child_2] => 2 ) ) 
Run Code Online (Sandbox Code Playgroud)

赞赏任何有关如何实现上述目标的想法!

u_m*_*der 5

在这种情况下,您可以使用简单array_merge_recursive:

$a1 = Array ( '2017-08-01' => Array ( 'adult_1' => 10, 'child_1' => 2, ) );
$a2 = Array ( '2017-08-01' => Array ( 'adult_2' => 20, 'child_2' => 4, ) );

echo'<pre>',print_r(array_merge_recursive($a1, $a2)),'</pre>';
Run Code Online (Sandbox Code Playgroud)