PHP で 2 つの異なる配列を比較する方法

PHPz
リリース: 2023-04-24 17:14:44
オリジナル
685 人が閲覧しました

PHP では、配列は非常に重要なデータ型であり、関連するデータ項目のグループを同じ変数に格納できます。配列を使用すると、コードの可読性と保守性が大幅に向上します。ただし、実際のプログラミングでは、2 つの配列の差分を求めるなど、配列を操作する必要があることがよくあります。この記事では、PHP で 2 つの異なる配列を比較する方法を説明します。

まず、2 つの異なる配列を作成して、それらを比較する方法をわかりやすく示します。

$array1 = array("apple", "banana", "orange", "pear");
$array2 = array("banana", "orange", "grapefruit");
ログイン後にコピー
ログイン後にコピー

これら 2 つの配列の違いを見てみましょう。 PHP 組み込み関数 array_diff() を使用して、2 つの配列間の違いを見つけることができます。この関数の構文は次のとおりです。

array_diff(array1, array2, array3...)
ログイン後にコピー

このうち、array1、array2、array3 などが比較対象の配列であり、複数の配列が存在する可能性があります。

ここで、array_diff() 関数を使用して、$array1 と $array2 の差を見つけてみましょう。コードは次のとおりです:

$diff = array_diff($array1, $array2);
print_r($diff);
ログイン後にコピー

出力結果は次のとおりです:

Array
(
    [0] => apple
    [3] => pear
)
ログイン後にコピー

出力結果は 2 つの配列の差分であることがわかります。 $array1 は存在します $array2 には存在しません。

$array2 と $array1 の違いを見つけたい場合はどうすればよいでしょうか?上記のコードでは、配列の順序を交換するだけで済みます。コードは次のとおりです:

$diff = array_diff($array2, $array1);
print_r($diff);
ログイン後にコピー

出力結果は次のとおりです:

Array
(
    [2] => grapefruit
)
ログイン後にコピー

出力結果は 2 つの配列の差であることがわかります。$array2 の "grapefruit" はそうではありません$array1 に存在します。

実際のプログラミングでは、複数の配列間の差異を比較する場面に遭遇することがあります。この時点で、PHP の組み込み関数 array_diff() の変形である array_diff_key() を使用して、複数の配列間のキーと値のペアを比較できます。

構文は次のとおりです:

array_diff_key(array1, array2, array3...)
ログイン後にコピー

次に、例を見てみましょう。次のように 3 つの配列を作成します。

$array1 = array("name" => "Tom", "age" => 20, "gender" => "male");
$array2 = array("name" => "Jack", "age" => 22, "gender" => "male", "hobby" => "swimming");
$array3 = array("name" => "Alice", "age" => 24, "gender" => "female", "hobby" => "reading");
ログイン後にコピー

array_diff_key() 関数を使用して、上記の 3 つの配列間の違いを見つけることができます。コードは次のとおりです:

$diff = array_diff_key($array1, $array2, $array3);
print_r($diff);
ログイン後にコピー

出力結果は次のとおりです:

Array
(
    [name] => Tom
    [age] => 20
    [gender] => male
)
ログイン後にコピー

出力結果は 3 つの配列の差であることがわかります。$array1 のキーと値のペアは $array2 にあり、$ は array3 に存在しません。

最後に、2 つの配列で同じ要素を同時に検索する必要がある場合の対処方法について説明します。このとき、PHP 組み込み関数 array_intersect() を使用できます。この関数の構文は次のとおりです。

array_intersect(array1, array2, array3...)
ログイン後にコピー

このうち、array1、array2、array3 などが比較対象の配列であり、複数の配列が存在する可能性があります。

それでは、例を見てみましょう。次のように 2 つの配列を作成します。

$array1 = array("apple", "banana", "orange", "pear");
$array2 = array("banana", "orange", "grapefruit");
ログイン後にコピー
ログイン後にコピー

array_intersect() 関数を使用して、上記の 2 つの配列間で同じ要素を見つけることができます。コードは次のとおりです:

$intersect = array_intersect($array1, $array2);
print_r($intersect);
ログイン後にコピー

出力結果は次のとおりです:

Array
(
    [1] => banana
    [2] => orange
)
ログイン後にコピー

出力結果は 2 つの配列、つまり「banana」と「orange」の間の共通要素であることがわかります。 」。

上記は、さまざまな PHP 配列を比較する方法です。実際のプログラミングでは、特定のニーズに基づいて配列計算に使用する方法を選択する必要があります。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート