国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP數組合并函數+、array_merge、array_merge_recursive

2024-09-04 11:46:11
字體:
來源:轉載
供稿:網友

我在php學習在使用到最多的數據合并方法就是array_merge、array_merge_recursive函數了,當然還會少用到操作符(+)函數了,下面我來給大家整理一下這幾個函數的一些用法.

PHP中,有3種方法來進行數組合并:操作符(+)、array_merge、array_merge_recursive,其中前兩種方式為一維數組的合并,第三種為遞歸合并.

在說PHP的數組合并之前,先要明白,PHP的數組分為索引數組和關聯數組。索引數組是指沒有鍵值和鍵值為數字的數組,關聯數組是指鍵值為字符的數組。

下面說說操作符(+)和array_merge的區別:

1.當為索引數組時,合并相同鍵值的數組,操作符以最前面的值為合并后的結果,array_merge則是把相同鍵值的數組合并,并重新索引(不同鍵值的數組合并時,也會從0開始重新生成數字索引)。

1、“+”運算符

規則:當兩個數組的鍵名是數字鍵名或者字符串鍵名 $c = $a + $b 在$a后追加($b在$a中不存在的鍵名)鍵名和值

注意:1、不覆蓋,只是追加不存在的鍵名和對應的值 2、鍵名不重新索引 3、無論是全部數字鍵名還是混合,都只是追加鍵名和值,如果鍵名相同則不進行追加,即把最先出現的值作為最終結果返回.

例1:數字鍵名,代碼如下:

  1. $a = array
  2.     'a'
  3. ); 
  4. $b = array
  5.     'u'
  6. ); 
  7. $c = $a + $b
  8. var_dump($c); 
  9.  
  10. output: 
  11. array(1) { 
  12.   [0]=> 
  13.   string(1) "a" 

例2:數字鍵名,代碼如下:

  1. $a = array
  2.     66=>'a'
  3. ); 
  4. $b = array
  5.     60=>'u'
  6.     66=>'c' 
  7. ); 
  8. $c = $a + $b
  9. var_dump($c); 
  10.  
  11. output: 
  12. array(2) { 
  13.   [66]=> 
  14.   string(1) "a" 
  15.   [60]=> 
  16.   string(1) "u" 

例3:字符鍵名,代碼如下:

  1. <?php   
  2. $a = array
  3.     1=>'a'
  4.     2=>'b'
  5.     'c'=>'c'
  6.     'd'=>'d'
  7. ); 
  8. $b = array
  9.     1=>'u'
  10.     3=>'v'
  11.     'c'=>'w'
  12.     'd'=>'x'
  13.     'y'=>'y'
  14.     60=>'z'
  15. ); 
  16. $c = $a + $b
  17. var_dump($c); 
  18. ?> 
  19. //output: 
  20. array(7) { 
  21.   [1]=> 
  22.   string(1) "a" 
  23.   [2]=> 
  24.   string(1) "b" 
  25.   ["c"]=> 
  26.   string(1) "c" 
  27.   ["d"]=> 
  28.   string(1) "d" 
  29.   [3]=> 
  30.   string(1) "v" 
  31.   ["y"]=> 
  32.   string(1) "y" 
  33.   [60]=> 
  34.   string(1) "z" 

2.當為關聯數組時,合并相同字符鍵值的數組,操作符合并規則是前面的覆蓋后面的,array_merge則是后面的覆蓋前面的.

例,代碼如下:

  1. $arr5 = array('a'=>'aaaa'); 
  2. $arr6 = array('a'=>'bbbb'); 
  3. var_dump($arr5+$arr6); 
  4. var_dump(array_merge($arr5,$arr6)); 
  5. //輸出: 
  6. array (size=1) 
  7.   'a' => string 'aaaa' (length=4) 
  8. array (size=1) 
  9.   'a' => string 'bbbb' (length=4) 

array_merge() 將一個或多個PHP數組合并起來,一個數組中的值附加在前一個數組的后面,返回作為結果的數組。

如果輸入的數組中有相同的字符串鍵名,則該鍵名后面的值將覆蓋前一個值,然而,如果數組包含數字鍵名,后面的值將不會覆蓋原來的值,而是附加到后面.

如果只給了一個數組并且該數組是數字索引的,則鍵名會以連續方式重新索引。

3.array_merge_recursive的合并規則和array_merge相同,只是array_merge_recursive支持多維數組的合并,例,代碼如下:

  1. $a = array
  2.  
  3. 1=>'a'
  4. 2=>'b'
  5. 'c'=>'c'
  6. 'd'=>'d'
  7.  
  8. ); 
  9.  
  10. $b = array
  11. 1=>'u'
  12. 3=>'v'
  13. 'c'=>'w'
  14. 'd'=>'x'
  15. 'y'=>'y'
  16. 60=>'z'
  17.  
  18. ); 
  19. var_dump(array_merge_recursive($a,$b)); 
  20. //輸出: 
  21. array (size=8) 
  22.   0 => string 'a' (length=1) 
  23.   1 => string 'b' (length=1) 
  24.   'c' =>  
  25.     array (size=2) 
  26.       0 => string 'c' (length=1) 
  27.       1 => string 'w' (length=1) 
  28.   'd' =>  
  29.     array (size=2) 
  30.       0 => string 'd' (length=1) 
  31.       1 => string 'x' (length=1) 
  32.   2 => string 'u' (length=1) 
  33.   3 => string 'v' (length=1) 
  34.   'y' => string 'y' (length=1) 
  35.   4 => string 'z' (length=1) 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鸡泽县| 基隆市| 剑川县| 天气| 镇江市| 福鼎市| 昌图县| 曲水县| 察隅县| 松阳县| 荥经县| 务川| 镇江市| 双鸭山市| 周至县| 环江| 广宗县| 南投县| 台中市| 苍山县| 康平县| 房产| 阳东县| 苏尼特右旗| 沙洋县| 马关县| 陆河县| 芜湖市| 蓬莱市| 两当县| 利津县| 大庆市| 清远市| 古蔺县| 庆阳市| 乌鲁木齐县| 三河市| 丹棱县| 宾川县| 上高县| 昔阳县|