ホームページ  >  記事  >  バックエンド開発  >  PHP で array_diff() 関数を実装して配列の違いを比較する 3 つの方法

PHP で array_diff() 関数を実装して配列の違いを比較する 3 つの方法

不言
不言転載
2019-01-03 10:13:303342ブラウズ

この記事では、配列の違いを比較するための PHP の array_diff() 関数の 3 つの実装方法について説明します。一定の参考値があります。必要な友人が参考になれば幸いです。が手伝う。

以下は、PHP の 2 つの配列の差を比較する array_diff() 関数の簡単な紹介です。

PHP 組み込み関数には array_diff() があります。これは、2 つの配列のキー値を比較し、その差を返すことを意味します。

以下は、配列トラバーサルを通じて差分セットを実装するものです:

まず、2 つの異なる配列 $arr_1、$arr_2 があります:

1 つのメソッド:

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

この方法は配列間の違いを実現できますが、配列の長さがある程度の長さに達すると効率は楽観的ではありません。

2 つのメソッド:

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

このメソッドは、他のブログでは array_diff() に匹敵すると言われています。

3 つの方法:

「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]);
    }
}
のキーに含まれるかどうかを判断します。

以上がPHP で array_diff() 関数を実装して配列の違いを比較する 3 つの方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。