多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > PHP數組合并函數+、array_merge、array_merge_recursive

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

來源:程序員人生   發布時間:2014-05-08 15:52:24 閱讀次數:3591次

我在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) 
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 欧美另类极品videosbest视 | 爱爱三级 | 国产综合影院 | 日本在线不卡视频 | 国产精品久久现线拍久青草 | 亚洲成年人免费网站 | 毛片大全网站 | 在线观看一级毛片免费 | 秋霞午夜鲁丝片午夜精品久 | 337p日本欧洲亚洲大胆色噜噜 | 欧美操片 | 夜夜影院未满十八勿进 | 九九精品视频在线播放8 | 亚洲国语 | 中文字幕第9页 | freee性欧美 freefromevideos性欧美 | 国产91香蕉| 九色 在线 | 乌克兰xxxx | jizz视频| 2018年国产成人精品视频 | 欧美乱日| 国产欧美另类久久久品 | 亚洲免费在线视频播放 | 免费羞羞 | 毛片色 | 在线黄色免费网站 | 免看一级a毛片一片成人不卡 | 日韩高清欧美精品亚洲 | 亚洲爱视频| 亚洲第一色区 | 免费aⅴ视频| 国产一区二区精品 | 最近在线更新中文字幕1 | 亚洲综合在线播放 | youjizz久久| 亚洲精品第一区二区在线 | 在线播放免费人成毛片乱码 | freesex呦交孩 | 一级毛片视频免费 | 欧美视频一区二区三区在线观看 |