2015-05-07 34 views
-1

我有两个数组,像这样:重复PHP数组的钥匙

[day0_units] => 0 
[day1_units] => 12 
[day1_start] => 08:00:00 
[day1_end] => 11:00:00 
[day2_units] => 12 
[day2_start] => 07:00:00 
[day2_end] => 11:00:00 
[day3_units] => 0 
[day4_units] => 12 
[day4_start] => 10:00:00 
[day4_end] => 12:00:00 
[day5_units] => 12 
[day5_start] => 08:00:00 
[day5_end] => 03:00:00 
[day6_units] => 0 

[day0_units] => 0 
[day0_start] => 10:00:00 
[day0_end] => 01:00:00 
[day1_units] => 12 
[day1_start] => 08:00:00 
[day1_end] => 11:00:00 
[day2_units] => 12 
[day2_start] => 07:00:00 
[day2_end] => 11:00:00 
[day3_units] => 0 
[day3_start] => 
[day3_end] => 
[day4_units] => 12 
[day4_start] => 10:00:00 
[day4_end] => 12:00:00 
[day5_units] => 12 
[day5_start] => 08:00:00 
[day5_end] => 03:00:00 
[day6_units] => 0 

所有我想要做的就是复制数组键,两个数组应该有相同的位置相同的密钥和保留,如果任何一个值。有什么建议么?

+0

不能确定这是否是你想要的方向,但你看着['array_merge'(HTTP:/ /php.net/manual/en/function.array-merge.php)有什么机会? –

+0

@Mari M:我不认为这会工作,因为数组的某些值需要保留。一个关键将会丢失,我想添加它。 –

回答

1

来自拿到钥匙,并把它们合并,然后翻转并与阵列合并:

$keys = array_flip(array_merge(array_keys($array1), array_keys($array2))); 
$array1 = array_merge($keys, $array1); 
$array2 = array_merge($keys, $array2); 
+0

这会保持键在相同的顺序吗?不知道如果array_diff_assoc()甚至关心订单,所以不知道是否重要。 –