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

PHPz
リリース: 2023-04-26 14:10:28
オリジナル
826 人が閲覧しました

PHP は、配列を処理および操作するためのさまざまな方法を提供する、非常に人気のある実用的なプログラミング言語です。開発プロセス中、多くの場合、2 つの配列間の差異を比較し、異なる値を表示する必要があります。以下にいくつかの実装方法を紹介します。

実装方法 1: array_diff() 関数を使用する

array_diff() 関数は、2 つの配列の値を比較し、異なる値を返すことができます。

$array1 = array("a" => "red", "b" => "green", "c" => "blue");
$array2 = array("a" => "red", "b" => "blue", "d" => "yellow");

$result = array_diff($array1, $array2);

print_r($result);
ログイン後にコピー

上記のコードを実行すると、出力結果は次のようになります。

Array
(
    [b] => green
    [c] => blue
)
ログイン後にコピー

上記の結果からわかるように、キー「b」と「c」の値は、 $array1 と $array2 は異なるため、array_diff () 関数はこれらの値を返します。

実装方法 2: foreach ループを使用する

array_diff() 関数を使用する以外に、foreach ループを使用して 2 つの配列の値を比較し、異なる値を表示することもできます。

$array1 = array("a" => "red", "b" => "green", "c" => "blue");
$array2 = array("a" => "red", "b" => "blue", "d" => "yellow");

foreach($array1 as $key => $value){
    if($value != $array2[$key]){
        echo "键为".$key."的值不同,分别为".$value."和".$array2[$key]."<br>";
    }
}
ログイン後にコピー

上記のコードを実行すると、出力結果は次のようになります。

键为b的值不同,分别为green和blue
键为c的值不同,分别为blue和
ログイン後にコピー

上記の結果からわかるように、キー「b」と「c」の値は、 $array1 と $array2 は異なるため、foreach ループはこれらの値を出力します。

foreach ループを使用して 2 つの配列を比較する場合、2 つの配列が同じキーを持つことを確認する必要があります。そうしないと、「通知: 未定義のオフセット」エラーが発生する可能性があります。

実装方法 3: array_map() 関数を使用する

2 つの配列の値を比較する別の方法は、array_map() 関数を使用することです。この関数は、両方の配列の同じキーの値にカスタム関数を適用し、結果を新しい配列に保存します。

$array1 = array("a" => "red", "b" => "green", "c" => "blue");
$array2 = array("a" => "red", "b" => "blue", "d" => "yellow");

$result = array_map(function($a, $b){
    if($a != $b){
        return array($a, $b);
    }
}, $array1, $array2);

print_r($result);
ログイン後にコピー

上記のコードを実行すると、出力結果は次のようになります。

Array
(
    [b] => Array
        (
            [0] => green
            [1] => blue
        )

    [c] => Array
        (
            [0] => blue
            [1] =>
        )

    [d] => Array
        (
            [0] =>
            [1] => yellow
        )

)
ログイン後にコピー

上記の結果からわかるように、キー「b」と「c」の値は、 $array1 と $array2 は異なるため、array_map () 関数はこれらの値を返します。

array_map() 関数を使用して 2 つの配列を比較する場合、カスタム関数を使用して比較ロジックを実装する必要があることに注意してください。

要約すると、2 つの配列の値を比較し、異なる値を表示するための実装方法は数多くあります。このうち、array_diff() 関数と foreach ループは比較的単純明快で比較的小規模な配列に適しており、array_map() 関数は比較的大規模な配列に適しており、カスタム関数を使用できます。より複雑な比較ロジックを実装します。実際の開発では、実情に応じて適切な比較方法を選択することで、開発効率やコード品質の向上につながります。

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

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