当每个数组存储在一个数组中时,PHP使用array\u merge\u recursive()

当每个数组存储在一个数组中时,PHP使用array\u merge\u recursive(),php,arrays,Php,Arrays,我有3个单独的数组,它们存储在一个大数组中,如下所示: $date = '2017-08-01'; $price_arr_1 = array(); $price_arr_1[$date]['adult_1'] = 10; $price_arr_1[$date]['child_1'] = 2; $price_arr_2 = array(); $price_arr_2[$date]['adult_2'] = 10; $price_arr_2[$date]['child_2'] = 2; $pr

我有3个单独的数组,它们存储在一个大数组中,如下所示:

$date = '2017-08-01';

$price_arr_1 = array();
$price_arr_1[$date]['adult_1'] = 10;
$price_arr_1[$date]['child_1'] = 2;

$price_arr_2 = array();
$price_arr_2[$date]['adult_2'] = 10;
$price_arr_2[$date]['child_2'] = 2;

$price_arr_3 = array();
$price_arr_3[$date]['adult_3'] = 10;
$price_arr_3[$date]['child_3'] = 2;

$multiple_arrays[] = $price_arr_1;
$multiple_arrays[] = $price_arr_2;
$multiple_arrays[] = $price_arr_3;

print_r($multiple_arrays);
输出为:

Array ( [0] => Array ( [2017-08-01] => Array ( [adult_1] => 10 [child_1] => 2 ) ) [1] => Array ( [2017-08-01] => Array ( [adult_2] => 10 [child_2] => 2 ) ) [2] => Array ( [2017-08-01] => Array ( [adult_3] => 10 [child_3] => 2 ) ) ) 
我想使用array\u merge\u recursive()将三个数组合并为一个,如下所示:

Array ( [2017-08-01] => Array ( [adult_1] => 10 [child_1] => 2 [adult_2] => 10 [child_2] => 2 [adult_3] => 10 [child_3] => 2 ) ) 
我认为在主阵列中循环可能会起作用,但我无法控制它,感谢您的帮助

我无法执行以下操作,因为数组中的数组数量每次都不同:

print_r(array_merge_recursive($multiple_arrays[0],$multiple_arrays[1],$multiple_arrays[2]));

要传递给
array\u merge\u recursive
多个参数,可以使用
call\u user\u func\u array
。在您的情况下,它将如下所示:

$date = '2017-08-01';

$price_arr_1 = array();
$price_arr_1[$date]['adult_1'] = 10;
$price_arr_1[$date]['child_1'] = 2;

$price_arr_2 = array();
$price_arr_2[$date]['adult_2'] = 10;
$price_arr_2[$date]['child_2'] = 2;

$price_arr_3 = array();
$price_arr_3[$date]['adult_3'] = 10;
$price_arr_3[$date]['child_3'] = 2;

$multiple_arrays[] = $price_arr_1;
$multiple_arrays[] = $price_arr_2;
$multiple_arrays[] = $price_arr_3;

//print_r($multiple_arrays);

$r = call_user_func_array('array_merge_recursive', $multiple_arrays);
print_r($r);

要传递给
array\u merge\u recursive
多个参数,可以使用
call\u user\u func\u array
。在您的情况下,它将如下所示:

$date = '2017-08-01';

$price_arr_1 = array();
$price_arr_1[$date]['adult_1'] = 10;
$price_arr_1[$date]['child_1'] = 2;

$price_arr_2 = array();
$price_arr_2[$date]['adult_2'] = 10;
$price_arr_2[$date]['child_2'] = 2;

$price_arr_3 = array();
$price_arr_3[$date]['adult_3'] = 10;
$price_arr_3[$date]['child_3'] = 2;

$multiple_arrays[] = $price_arr_1;
$multiple_arrays[] = $price_arr_2;
$multiple_arrays[] = $price_arr_3;

//print_r($multiple_arrays);

$r = call_user_func_array('array_merge_recursive', $multiple_arrays);
print_r($r);

它仍然可以工作,不是吗?你是说我使用$multiple_array[0]、$multiple_array[1]?数组中的数组数量每次都会改变,所以它不会工作。它仍然会工作,不是吗?你是说我使用$multiple_array[0]、$multiple_array[1]?数组中的数组数量每次都会发生变化,因此不会起作用