php中array_merge和+對數組操作的區別

主要區別是兩個或者多個數組中如果出現相同鍵名,鍵名分爲字符串或者數字,需要注意

1)鍵名爲數字時,array_merge()不會覆蓋掉原來的值,但+合併數組則會把最先出現的值作爲最終結果返回,而把後面的數組擁有相同鍵名的那些值“拋棄”掉(不是覆蓋)

2)鍵名爲字符時,+仍然把最先出現的值作爲最終結果返回,而把後面的數組擁有相同鍵名的那些值“拋棄”掉,但array_merge()此時會覆蓋掉前面相同鍵名的值

需要注意的是數組鍵形式 '數字' 等價於 數字      '122'這個key值也算爲數字

  1. $a = array('a','b');  
  2. $b = array('c''d');  
  3. $c = $a + $b;  
  4. var_dump($c);
  5. var_dump(array_merge($a$b));   

array (size=2)
  0 =>  'a' (length=1)
  1 =>  'b' (length=1)
array (size=4)
  0 =>  'a' (length=1)
  1 =>  'b' (length=1)
  2 =>  'c' (length=1)
  3 =>  'd' (length=1)

  1. $a = array(0 => 'a', 1 => 'b');  
  2. $b = array(0 => 'c', 1 => 'b');  
  3. $c = $a + $b;  
  4. var_dump($c);  
  5. var_dump(array_merge($a$b));  

array (size=2)
  0 =>  'a' (length=1)
  1 =>  'b' (length=1)
array (size=4)
  0 =>  'a' (length=1)
  1 =>  'b' (length=1)
  2 =>  'c' (length=1)
  3 =>  'b' (length=1)

  1. $a = array('a''b');  
  2. $b = array('0' => 'c', 1 => 'b');  
  3. $c = $a + $b;  
  4. var_dump($c);  
  5. var_dump(array_merge($a$b));   
  6. array (size=2)
      0 =>  'a' (length=1)
      1 =>  'b' (length=1)
    
    array (size=4)
      0 =>  'a' (length=1)
      1 =>  'b' (length=1)
      2 =>  'c' (length=1)
      3 =>  'b' (length=1)

  7.  

  8. $a = array(0 => 'a', 1 => 'b');  
  9. $b = array('0' => 'c''1' => 'b');  
  10. $c = $a + $b;  
  11. var_dump($c);  
  12. var_dump(array_merge($a$b));  
  13. array (size=2)
      0 =>  'a' (length=1)
      1 =>  'b' (length=1)
    
    array (size=4)
      0 =>  'a' (length=1)
      1 =>  'b' (length=1)
      2 =>  'c' (length=1)
      3 =>  'b' (length=1)
    

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章