2017-07-30 9 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))) 

Iをこのようなものの中に3つの配列をマージする)(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をループだと思いますyは機能するかもしれませんが、私はそれの周りに私の頭を得ることはできません、助けを感謝!

アレイ内のアレイの数は毎回違うので、私は次の操作を行うことはできません。

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

それでも動作しますか? – rahulsm

+0

あなたは$ multiple_arrays [0]、$ multiple_arrays [1] ...を使っている最後の部分を意味しますか?配列内の配列の数は毎回変わるので、動作しません。 –

答えて

2

あなたがcall_user_func_arrayを使用することができます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); 

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

あなたは天才です、ありがとう! –