一、PHP三種數組合並方式
目前工作中接觸到的PHP數組合並方式主要有三種:
1、+操作符
2、array_merge()
3、array_merge_recursive()
它們的區別主要體現在對於相關鍵名(數字鍵名、字符串鍵名)的處理方式。
二、相同字符串鍵
$arrFirst = [
"first_key" => 1,
"second_key" => 1,
"third_key" => 1,
];
$arrSecond = [
"first_key" => 2,
"second_key" => 2,
"fourth_key" => 2,
];
//對於重復的字符串鍵,array_merge后,后面數組的鍵值會覆蓋前面的
echo sprintf("\narray_merge result:\n%s", print_r(array_merge($arrFirst, $arrSecond), true));
//對於重復的字符串鍵,+操作后,前面數組的鍵值會覆蓋后面的
echo sprintf("\narray + result:\n%s", print_r($arrFirst + $arrSecond, true));
//對於重復的字符串鍵,array_merge_recursive后,相同鍵名的鍵值會被合並到同一數組中(會遞歸)
echo sprintf("\narray_merge_recursive result:\n%s", print_r(array_merge_recursive($arrFirst, $arrSecond), true));
運行結果:

三、相同數字鍵
$arrFirst = [
111 => "first",
222 => "first",
"first" //會指定默認的數字鍵223
];
$arrSecond = [
111 => "second",
333 => "second",
"second" //會指定默認的數字鍵334
];
//對於重復的數字鍵,+操作后,前面數組的鍵值會覆蓋后面的,保留之前數字鍵
echo sprintf("\narray + result:\n%s", print_r($arrFirst + $arrSecond, true));
//對於重復的數字鍵,array_merge后,重排數字鍵,不會覆蓋
echo sprintf("\narray_merge result:\n%s", print_r(array_merge($arrFirst, $arrSecond), true));
//對於重復的數字鍵,array_merge_recursive后,重排數字鍵,不會覆蓋
echo sprintf("\narray_merge_recursive result:\n%s", print_r(array_merge_recursive($arrFirst, $arrSecond), true));

