日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

PHP求并集,交集,差集

發布時間:2025/7/25 php 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PHP求并集,交集,差集 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

PHP求并集,交集,差集

一、總結

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

array_merge() array_intersect() array_diff()

?

1、php中如何求并集?

array_merge() +

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

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

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

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

  • $a = array(1 => 'a', 'b', 'c');
  • $b = array(1 => 'aa', 2, 'c');
  • $union = array_merge($a, $b);
  • $plus = $a + $b;
  • print_r($union);
  • print_r($plus);
  • //結果依次為:
  • Array
  • {
  • [0]=> a
  • [1]=> b
  • [2]=> c
  • [3]=> aa
  • [4]=> 2
  • [5]=> c
  • }
  • Array
  • (
  • [1] => a
  • [2] => b
  • [3] => c
  • )
  • 要合并的兩個數組中有相同的字符串鍵的時候,使用array_merge()會覆蓋掉原來的值,而使用“+”合并數組則會和用“+”號合并數組相同數字鍵一樣把最先出現的值作為最終結果返回,如下例:

  • $a2 = array('str' => 'a', 'b', 'c');
  • $b2 = array('str' => 'aa', 2, 'c');
  • $union2 = array_merge($a2, $b2);
  • $plus2 = $a2 + $b2;
  • print_r($union2);
  • print_r($plus2);
  • //結果依次為:
  • Array
  • (
  • [str] => aa
  • [0] => b
  • [1] => c
  • [2] => 2
  • [3] => c
  • )
  • Array
  • (
  • [str] => a
  • [0] => b
  • [1] => c
  • )
  • 注:如果想用array_merge合并兩個數組,返回結果可能還會有相同的元素,這時候可以用array_unique()把相同的元素去掉

    ?

    2、php合并 array_merge與“+”的區別是什么?

    + 合并索引

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

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

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

  • $a = array(1 => 'a', 'b', 'c');
  • $b = array(1 => 'aa', 2, 'c');
  • $union = array_merge($a, $b);
  • $plus = $a + $b;
  • print_r($union);
  • print_r($plus);
  • //結果依次為:
  • Array
  • {
  • [0]=> a
  • [1]=> b
  • [2]=> c
  • [3]=> aa
  • [4]=> 2
  • [5]=> c
  • }
  • Array
  • (
  • [1] => a
  • [2] => b
  • [3] => c
  • )
  • 要合并的兩個數組中有相同的字符串鍵的時候,使用array_merge()會覆蓋掉原來的值,而使用“+”合并數組則會和用“+”號合并數組相同數字鍵一樣把最先出現的值作為最終結果返回,如下例:

  • $a2 = array('str' => 'a', 'b', 'c');
  • $b2 = array('str' => 'aa', 2, 'c');
  • $union2 = array_merge($a2, $b2);
  • $plus2 = $a2 + $b2;
  • print_r($union2);
  • print_r($plus2);
  • //結果依次為:
  • Array
  • (
  • [str] => aa
  • [0] => b
  • [1] => c
  • [2] => 2
  • [3] => c
  • )
  • Array
  • (
  • [str] => a
  • [0] => b
  • [1] => c
  • )
  • 注:如果想用array_merge合并兩個數組,返回結果可能還會有相同的元素,這時候可以用array_unique()把相同的元素去掉

    ?

    3、php中如何求交集?

    array_intersect()

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

  • $a = array('jpg','png','gif','bmp');
  • $b = array('JPG','txt','docx','bmp');
  • $intersection = array_intersect($a, $b);
  • 還可以通過函數,獲取自己想要的(比如元素不區分大小寫),代碼如下:

  • $intersection2 = array_intersect(array_map('strtolower',$a), array_map('strtolower',$b));
  • print_r($intersection);
  • print_r($intersection2);
  • //結果依次為:
  • Array
  • (
  • [3] => bmp
  • )
  • Array (
  • [0] => jpg
  • [3] => bmp
  • )
  • ?

    ?

    ?

    4、php中如何求差集?

    array_diff()

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

  • $old = array('jpg','png','gif','bmp');
  • $new = array('JPG','txt','docx','bmp');
  • $difference = array_diff($old, $new);
  • 注:返回結果的元素包含$old的元素,不包括$new的元素

    print_r($difference);

    結果為:

  • Array
  • (
  • [0] => jpg
  • [1] => png
  • [2] => gif
  • )
  • 也可以用函數先進行處理,再計算差集

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

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

    代碼如下:

  • $difference = array_diff(array_map('strtolower',$old),
  • array_map('strtolower',$new));
  • ?


    ?

    ?

    二、PHP數組的幾個操作,求并集,交集,差集,數組與字符串的相互轉換及數組去重

    參考:PHP數組的幾個操作,求并集,交集,差集,數組與字符串的相互轉換及數組去重 - shao.bing的專欄 - CSDN博客
    https://blog.csdn.net/shaobingj126/article/details/51814726

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

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

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

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

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

  • $a = array(1 => 'a', 'b', 'c');
  • $b = array(1 => 'aa', 2, 'c');
  • $union = array_merge($a, $b);
  • $plus = $a + $b;
  • print_r($union);
  • print_r($plus);
  • //結果依次為:
  • Array
  • {
  • [0]=> a
  • [1]=> b
  • [2]=> c
  • [3]=> aa
  • [4]=> 2
  • [5]=> c
  • }
  • Array
  • (
  • [1] => a
  • [2] => b
  • [3] => c
  • )
  • 要合并的兩個數組中有相同的字符串鍵的時候,使用array_merge()會覆蓋掉原來的值,而使用“+”合并數組則會和用“+”號合并數組相同數字鍵一樣把最先出現的值作為最終結果返回,如下例:

  • $a2 = array('str' => 'a', 'b', 'c');
  • $b2 = array('str' => 'aa', 2, 'c');
  • $union2 = array_merge($a2, $b2);
  • $plus2 = $a2 + $b2;
  • print_r($union2);
  • print_r($plus2);
  • //結果依次為:
  • Array
  • (
  • [str] => aa
  • [0] => b
  • [1] => c
  • [2] => 2
  • [3] => c
  • )
  • Array
  • (
  • [str] => a
  • [0] => b
  • [1] => c
  • )
  • 注:如果想用array_merge合并兩個數組,返回結果可能還會有相同的元素,這時候可以用array_unique()把相同的元素去掉

    計算數組的交集

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

  • $a = array('jpg','png','gif','bmp');
  • $b = array('JPG','txt','docx','bmp');
  • $intersection = array_intersect($a, $b);
  • 還可以通過函數,獲取自己想要的(比如元素不區分大小寫),代碼如下:

  • $intersection2 = array_intersect(array_map('strtolower',$a), array_map('strtolower',$b));
  • print_r($intersection);
  • print_r($intersection2);
  • //結果依次為:
  • Array
  • (
  • [3] => bmp
  • )
  • Array (
  • [0] => jpg
  • [3] => bmp
  • )
  • 計算數組的差集,代碼如下:

  • $old = array('jpg','png','gif','bmp');
  • $new = array('JPG','txt','docx','bmp');
  • $difference = array_diff($old, $new);
  • 注:返回結果的元素包含$old的元素,不包括$new的元素

    print_r($difference);

    結果為:

  • Array
  • (
  • [0] => jpg
  • [1] => png
  • [2] => gif
  • )
  • 也可以用函數先進行處理,再計算差集

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

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

    代碼如下:

  • $difference = array_diff(array_map('strtolower',$old),
  • array_map('strtolower',$new));
  • ?

    數組轉換為字符串:

    ?

    <?php $arr = array('Hello','World!','I','love','Shanghai!'); echo implode(" ",$arr); ?>

    ?

    字符串轉換為數組:

    <?php
    $str="1432532 ,4444";

    $arr = explode(",",$str);
    echo count($arr)."</br>";

    print_r($arr);
    ?>

    數組元素值去重

    ?

    <?php $a=array("a"=>"red","b"=>"green","c"=>"red"); print_r(array_unique($a)); ?>

    ?

    ?

    針對有空格的字符串轉換成無空格的字符串

    <?php
    $str="1432532 ,67878";

    $arr = explode(",",$str);
    //echo count($arr)."</br>";

    $str_u='';

    for($i=0;$i<count($arr);$i++)
    {

    $str_u .=trim($arr[$i]).',';

    }
    echo $str_u;

    ?>

    ?

    轉載于:https://www.cnblogs.com/Renyi-Fan/p/10226009.html

    總結

    以上是生活随笔為你收集整理的PHP求并集,交集,差集的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。