php中兩個陣列合併可以使用+或者array_merge,但之間還是有區別的,而且這些區別如果了解不清楚專案中會要命的!
主要區別是兩個或者多個陣列中如果出現相同鍵名,鍵名分為字串或者數字,需要注意
1)鍵名為數字時,array_merge()不會覆蓋掉原來的值,但+合併陣列則會把最先出現的值作為最終結果返回,而把後面的陣列擁有相同鍵名的那些值「拋棄」掉(不是覆蓋)
2)鍵名為字元時,+仍然把最先出現的值作為最終結果返回,而把後面的陣列擁有相同鍵名的那些值「拋棄」掉,但array_merge()此時會覆蓋掉前面相同鍵名的值
需要注意的是陣列鍵形式 '數字' 等價於 數字
**如下:
$a = array('a','b');
$b = array('c', 'd');
$c = $a + $b;
var_dump($a);
var_dump(array_merge($a, $b));
$a = array(0 => 'a', 1 => 'b');
$b = array(0 => 'c', 1 => 'b');
$c = $a + $b;
var_dump($c);
var_dump(array_merge($a, $b));
$a = array('a', 'b');
$b = array('0' => 'c', 1 => 'b');
$c = $a + $b;
var_dump($c);
var_dump(array_merge($a, $b));
$a = array(0 => 'a', 1 => 'b');
$b = array('0' => 'c', '1' => 'b');
$c = $a + $b;
var_dump($c);
var_dump(array_merge($a, $b));
結果:
array
0 => string 'a' (length=1)
1 => string 'b' (length=1)
2 => string 'c' (length=1)
3 => string 'd' (length=1)
array
0 => string 'a' (length=1)
1 => string 'b' (length=1)
array
0 => string 'a' (length=1)
1 => string 'b' (length=1)
2 => string 'c' (length=1)
3 => string 'b' (length=1)
array
0 => string 'a' (length=1)
1 => string 'b' (length=1)
array
0 => string 'a' (length=1)
1 => string 'b' (length=1)
2 => string 'c' (length=1)
3 => string 'b' (length=1)
array
0 => string 'a' (length=1)
1 => string 'b' (length=1)
array
0 => string 'a' (length=1)
1 => string 'b' (length=1)
2 => string 'c' (length=1)
3 => string 'b' (length=1)
但是本人認為以上區別總結的並不全面,
1.當陣列為數字鍵名或可以轉換為數字下標的字串鍵名時,array_merge()會重新初始化鍵名,而「+」操作則不會。在程式設計過程中有許多操作是需要保留鍵名和值的對應關係,這個時候就需要用「+」,示例**如下:
$a = array(1 => 'a', 5 => 'b');
$b = array(3 => 'c', 7 => 'd');
$c = $a + $b;
var_dump($c);
var_dump(array_merge($a, $b));
結果如下:
array (size=4)
1 => string 'a' (length=1)
5 => string 'b' (length=1)
3 => string 'c' (length=1)
7 => string 'd' (length=1)
array (size=4)
0 => string 'a' (length=1)
1 => string 'b' (length=1)
2 => string 'c' (length=1)
3 => string 'd' (length=1)
PHP 合併陣列
php陣列合併 二元運算子 array merge array replace arr1 a first b second third arr2 a test1 c test2 test3 二元運算子 相同鍵 包括數字鍵與字串鍵 前面覆蓋後面的,不同鍵合併 new arr arr1 arr2 pri...
php陣列合併 array merge與 「 」
php中陣列合併有兩種方式 array merge 與 使用方式如下 arr array merge arr1 arr2 arr arr1 arr2 兩種方式看似相同,但使用中 坑 還是不少的。看下面的例子 arr1 array 3,3476,123,45,45,a 79 arr2 array 40...
PHP陣列 陣列合併
陣列合併函式 array merge或者 array merge 將乙個或多個陣列的單元合併起來,乙個陣列中的值附加在前乙個陣列的後面。返回作為結果的陣列。如果輸入的陣列中有相同的字串鍵名,則該鍵名後面的值將覆蓋前乙個值。然而,如果陣列包含數字鍵名,後面的值將不會覆蓋原來的值,而是附加到後面。如果只...