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

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > php中數組的并集、交集和差集函數介紹

php中數組的并集、交集和差集函數介紹

來源:程序員人生   發布時間:2013-10-09 01:52:32 閱讀次數:3802次

在php中如果我想要對兩個數組進行如并集、交集和差集操作,我們可直接使用php自帶的函數來操作如array_merge(),array_intersect(),array_diff().

計算數組的合并 array_merge與“+”的區別

array_merge() 函數把兩個或多個數組合并為一個數組。

如果鍵名有重復,該鍵的鍵值為最后一個鍵名對應的值(后面的覆蓋前面的),如果數組是數字索引的,則鍵名會以連續方式重新索引。

注釋:如果僅僅向 array_merge() 函數輸入了一個數組,且鍵名是整數,則該函數將返回帶有整數鍵名的新數組,其鍵名以 0 開始進行重新索引.代碼如下:

  1. $a = array(1 => 'a''b''c'); 
  2. $b = array(1 => 'aa', 2, 'c'); 
  3. $union = array_merge($a$b); 
  4. $plus = $a + $b
  5. print_r($union); 
  6. print_r($plus); 
  7. //結果依次為: 
  8. Array 
  9. [0]=> a 
  10. [1]=> b 
  11. [2]=> c 
  12. [3]=> aa 
  13. [4]=> 2 
  14. [5]=> c 
  15. Array 
  16. [1] => a 
  17. [2] => b 
  18. [3] => c 

要合并的兩個數組中有相同的字符串鍵的時候,使用array_merge()會覆蓋掉原來的值,而使用“+”合并數組則會和用“+”號合并數組相同數字鍵一樣把最先出現的值作為最終結果返回,如下例:

  1. $a2 = array('str' => 'a''b''c'); 
  2. $b2 = array('str' => 'aa', 2, 'c'); 
  3. $union2 = array_merge($a2$b2); 
  4. $plus2 = $a2 + $b2
  5. print_r($union2); 
  6. print_r($plus2); 
  7. //結果依次為: 
  8. Array 
  9. [str] => aa 
  10. [0] => b 
  11. [1] => c 
  12. [2] => 2 
  13. [3] => c 
  14. Array 
  15. [str] => a 
  16. [0] => b 
  17. [1] => c 

注:如果想用array_merge合并兩個數組,返回結果可能還會有相同的元素,這時候可以用array_unique()把相同的元素去掉

計算數組的交集

array_intersect() 函數返回兩個或多個數組的交集數組,結果數組包含了所有在被比較數組中,也同時出現在所有其他參數數組中的值,鍵名保留不變,注釋:僅有值用于比較,代碼如下:

  1. $a = array('jpg','png','gif','bmp'); 
  2. $b = array('JPG','txt','docx','bmp'); 
  3. $intersection = array_intersect($a$b); 

還可以通過函數,獲取自己想要的(比如元素不區分大小寫),代碼如下:

  1. $intersection2 = array_intersect(array_map('strtolower',$a), array_map('strtolower',$b)); 
  2. print_r($intersection); 
  3. print_r($intersection2); 
  4. //結果依次為: 
  5. Array 
  6. [3] => bmp 
  7. Array ( 
  8. [0] => jpg 
  9. [3] => bmp 

計算數組的差集,代碼如下:

  1. $old = array('jpg','png','gif','bmp'); 
  2. $new = array('JPG','txt','docx','bmp'); 
  3. $difference = array_diff($old$new); 

注:返回結果的元素包含$old的元素,不包括$new的元素

print_r($difference);

結果為:

  1. Array 
  2. [0] => jpg 
  3. [1] => png 
  4. [2] => gif 

也可以用函數先進行處理,再計算差集

array_diff() 函數返回兩個數組的差集數組。該數組包括了所有在被比較的數組中,但是不在任何其他參數數組中的鍵值,在返回的數組中,鍵名保持不變。

語法:array_diff(array1,array2,array3...)

代碼如下:

  1. $difference = array_diff(array_map('strtolower',$old), 
  2. array_map('strtolower',$new)); 
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 五月婷婷六月丁香综合 | 精品国产一区二区三区香蕉沈先生 | 日本怡春院欧美一区二区三区 | 中文字幕在线视频网 | 成人中文字幕在线 | 叼嗨视频免费 | 爱操在线| 亚洲一区二区三区四区在线 | 久久精品国产欧美 | 午夜伊人 | 中文字幕在线视频免费观看 | 一区二区三区免费看 | 日本高清wwww免费视频 | 国产永久免费爽视频在线 | 国产免费高清在线精品一区 | 国产精品视频福利 | 中文字幕在线视频一区 | 亚洲欧美综合图片 | 中文字幕组 | 日本aaaa片毛片免费观看 | 看欧美毛片一级毛片 | 免费网站h | 性欧美性free| 欧美成人国产一区二区 | 亚洲线精品一区二区三区 | 最新国产福利片在线观看 | 最近中文字幕免费版在线 | 中文字幕 日本 | 免费性生活视频 | 午夜写真福利视频在线观看 | 第一页亚洲 | 国产福利一区二区 | 欧美日韩亚洲区久久综合 | 欧美色另类 | 欧美freesex呦交中文 | 国产亚洲精品线观看77 | 一区自拍| 爱啪网亚洲第一福利网站 | 精品一成人岛国片在线观看 | 亚洲国产欧美日韩一区二区三区 | 日本在线视频网 |