程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP數組合並+與array_merge的區別分析 對多個數組合並去重技巧

PHP數組合並+與array_merge的區別分析 對多個數組合並去重技巧

編輯:PHP綜合

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));
//輸出: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 'd' (length=1)

$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)
array  0 => string 'a' (length=1)  1 => string 'b' (length=1)  2 => string 'c' (length=1)  3 => string 'b' (length=1)
++++++++++++++++++++++++++++++++++++++++++  
$a = array('a', '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)
array  0 => string 'a' (length=1)  1 => string 'b' (length=1)  2 => string 'c' (length=1)  3 => string 'b' (length=1)
++++++++++++++++++++++++++++++++++++++++++
$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)
array  0 => string 'a' (length=1)  1 => string 'b' (length=1)  2 => string 'c' (length=1)  3 => string 'b' (length=1)

 

*
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved