下边简易详细介绍php较为2个数组的差异array_diff()函数。

原文详细地址:小时刻本人技术博客 > http://small.aiweimeng.top/index.php/archives/9.html

 

php内嵌函数中有一个array_diff():含意较为2个数组的键值,并回到差集。

下边是根据数组遍历年来完成差集:
最先有两个不一样的数组$arr_1,$arr_2:
一种方式:

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;
             }
       }
}

 


这类尽管可以完成数组间的差异,假如数组长短做到一定的长短后,高效率令人担忧。

二种方式:

foreach ($arr_1 as $key => $val)
{
    if(in_array($val,$arr_2))
    {
        unset($arr_1[$key]);
    }
}

 

这类方法在别的blog上说能够和array_diff()匹敌。

三种方法:
根据```array_flip();```将arr_2数组键值翻转后,分辨arr_1数组中的值是不是在arr_2的键中

$arr_2 = array_flip($arr_2);
foreach ($arr_1 as $key => $val)
{
    if(isset($arr_2[$val]))
    {
        unset($arr_1[$key]);
    }
}