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

首頁 > 語言 > PHP > 正文

php中數(shù)組的并集、交集和差集函數(shù)介紹

2024-09-04 11:45:54
字體:
供稿:網(wǎng)友

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

計(jì)算數(shù)組的合并 array_merge與“+”的區(qū)別

2017年可用的翻墻軟件,解決Youtube、Facebook、Twitter等上不了的問題

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

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

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

  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. //結(jié)果依次為: 
  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 

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

  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. //結(jié)果依次為: 
  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合并兩個數(shù)組,返回結(jié)果可能還會有相同的元素,這時候可以用array_unique()把相同的元素去掉

計(jì)算數(shù)組的交集

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

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

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

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

計(jì)算數(shù)組的差集,代碼如下:

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

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

print_r($difference);

結(jié)果為:

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

也可以用函數(shù)先進(jìn)行處理,再計(jì)算差集

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

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

代碼如下:

  1. $difference = array_diff(array_map('strtolower',$old), 
  2. array_map('strtolower',$new)); 

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 凤翔县| 如东县| 抚松县| 南涧| 宁陵县| 天气| 沾益县| 额尔古纳市| 柳林县| 伊川县| 扶风县| 方山县| 黄石市| 昂仁县| 泊头市| 开原市| 土默特左旗| 济南市| 叙永县| 芦山县| 平度市| 垫江县| 北宁市| 定兴县| 白水县| 东港市| 娄烦县| 汝州市| 卫辉市| 莱州市| 波密县| 西丰县| 西宁市| 精河县| 达州市| 禹城市| 巴青县| 拉萨市| 富锦市| 尼玛县| 台北县|