当每个数组存储在一个数组中时,PHP使用array\u merge\u recursive()
我有3个单独的数组,它们存储在一个大数组中,如下所示:当每个数组存储在一个数组中时,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
$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]?数组中的数组数量每次都会发生变化,因此不会起作用