亚洲欧美日韩综合系列在线_91精品人妻一区二区_欧美大肥婆一级特大AA片_九色91视频免费观看_亚洲综合国产精品_av中文字幕在线不卡_久久精品色综合网_看黄色视频的软件_无卡无码高清中文字幕码2024_亚洲欧美日韩天堂网

php中array_diff()函數(shù)比較數(shù)組差異的三種實(shí)現(xiàn)方法

來源:不言 發(fā)布時(shí)間:2019-01-04 14:59:33 閱讀量:1000

本篇文章給大家?guī)淼膬?nèi)容是關(guān)于php中array_diff()函數(shù)比較數(shù)組差異的三種實(shí)現(xiàn)方法,有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對(duì)你有所幫助。

下面簡(jiǎn)單介紹php比較兩個(gè)數(shù)組的差異array_diff()函數(shù)。

php內(nèi)置函數(shù)中有一個(gè)array_diff():意思比較兩個(gè)數(shù)組的鍵值,并返回差集。

下面是通過數(shù)組遍歷來實(shí)現(xiàn)差集:

首先有兩個(gè)不同的數(shù)組$arr_1,$arr_2:

一種方法:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

function fun($arr_1,$arr_2)

{

       foreach ($arr_1 as $key => $val)

      {

              $bool = false;

              foreach ($arr_2 as $k => $v)

             {

                   if($bool = ($val == $v))

                  {

                           break;

                   }

             }

             if(!$bool)

            {

                 $diff[$key] = $val;

             }

       }

}

這種雖然能夠?qū)崿F(xiàn)數(shù)組間的差異,如果數(shù)組長(zhǎng)度達(dá)到一定的長(zhǎng)度后,效率不容樂觀。

二種方法:

1

2

3

4

5

6

7

foreach ($arr_1 as $key => $val)

{

    if(in_array($val,$arr_2))

    {

            unset($arr_1[$key]);

    }

}

這種方式在其他博客上說可以和array_diff()媲美。

三種方式:

通過"array_flip();"將arr_2數(shù)組鍵值反轉(zhuǎn)后,判斷arr_1數(shù)組中的值是否在arr_2的鍵中

1

2

3

4

5

6

7

8

$arr_2 = array_flip($arr_2);

foreach ($arr_1 as $key => $val)

{

    if(isset($arr_2[$val]))

    {

            unset($arr_1[$key]);

    }

}



標(biāo)簽: PHP
分享:
評(píng)論:
你還沒有登錄,請(qǐng)先