2017-07-30 46 views
0

我有3個單獨的陣列,其被存儲在一個大陣列像這樣:PHP使用array_merge_recursive()當每個陣列被存儲在一個陣列

$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_merge_recursive()合併三個數組到一個這樣的:

Array ([2017-08-01] => Array ([adult_1] => 10 [child_1] => 2 [adult_2] => 10 [child_2] => 2 [adult_3] => 10 [child_3] => 2)) 

我想通過主ARRA循環你可能會工作,但我無法理解它,感謝任何幫助!

我不能做到以下幾點,因爲在陣列中陣列的數量每次都是不同的:

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

它仍然會工作,不是嗎? – rahulsm

+0

你的意思是我使用$ multiple_arrays [0],$ multiple_arrays [1] ...的最後一部分?數組中的數組數量每次都會發生變化,所以不會起作用 –

回答

2

傳遞到array_merge_recursive幾個參數就可以使用call_user_func_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); 
+0

您的先生是天才,謝謝! –