ホームページ > バックエンド開発 > PHPの問題 > PHPで2つの配列の異なる値を見つける方法

PHPで2つの配列の異なる値を見つける方法

WBOY
リリース: 2023-05-23 11:57:37
オリジナル
1043 人が閲覧しました

広く使用されているプログラミング言語である PHP は、配列を処理するときに 2 つの配列間の異なる値を比較する必要がよくあります。この記事では、2 つの配列の異なる値を見つけるための PHP メソッドをいくつか紹介します。

方法 1: array_diff() 関数を使用する
array_diff() 関数は、2 つの配列間の異なる値を比較する場合に非常に便利で、次のように使用されます。コードでは、2 つの配列 $array1 と $array2 を定義し、$array2 とは異なる値を $array1 から見つけます。 $array1 には存在するが $array2 には存在しない値を返します。出力結果は次のようになります:

<?php
$array1 = array("a" => "apple", "b" => "banana", "c" => "cherry", "d" => "date");
$array2 = array("a" => "apple", "b" => "banana", "g" => "grape");

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

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

方法 2: array_udiff() 関数を使用する

比較する必要がある配列要素が単なる値ではなく、より高度な比較も必要な場合は、array_udiff を使用する必要があります。 () 関数を使用すると、比較にカスタム コールバック関数を使用できるようになります。使用法は次のとおりです。

Array ( [c] => cherry [d] => date )
ログイン後にコピー

上記のコードでは、2 つの要素間のサイズ関係を比較し、元の配列要素を返すために使用される比較コールバック関数 Compare() を定義します。次に、array_udiff() 関数を使用して、2 つの配列とカスタム コールバック関数を渡します。この関数は、最初の配列に存在する要素と 2 番目の配列に存在しない要素を返します。出力結果は次のようになります。

<?php
function compare($x, $y) {
   if ($x === $y) {
      return 0;
   }
   return ($x > $y) ? 1 : -1;
}

$array1 = array("apple", "banana", "cherry", "date");
$array2 = array("apple", "banana", "grape");

$result = array_udiff($array1, $array2, "compare");

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

方法 3: array_diff_key() 関数を使用する

2 つの配列の値 (値) ではなく、キー (キー) のみを比較する必要がある場合は、次のようにします。 array_diff_key()関数を使用できます。両方の配列でキーが一致しない値を返します。使用法は次のとおりです。

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

上記のコードでは、2 つの配列のキーを比較し、$array2 とは異なる $array1 のキー値の値を返します。出力結果は次のようになります。

<?php
$array1 = array("a" => "apple", "b" => "banana", "c" => "cherry");
$array2 = array("a" => "apple", "b" => "banana", "d" => "date");

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

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

方法 4: array_udiff_assoc() 関数を使用する

2 つの多次元配列の異なる値を比較する必要がある場合は、array_udiff_assoc( ) 関数は、array_udiff( ) 関数と同じように使用されますが、多次元配列の比較をサポートする点を除いて類似しています。使用法は次のとおりです。

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

上記のコードでは、多次元配列要素を比較するためのコールバック関数 Compare() を定義しています。使用法はメソッド 2 と同様です。 2 つの多次元配列を渡し、コールバック関数を使用してそれらを比較すると、$array1 には存在するが $array2 には存在しない要素が返されます。出力は次のようになります:

<?php
function compare($x, $y) {
   if ($x === $y) {
      return 0;
   }
   return ($x > $y) ? 1 : -1;
}

$array1 = array("a" => "apple", "b" => "banana", "c" => "cherry");
$array2 = array("a" => "apple", "b" => "banana", "d" => "date");

$result = array_udiff_assoc($array1, $array2, "compare");

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

結論

PHP は、2 つの配列間の異なる値を比較するための非常に豊富な関数を提供します。 array_diff() または array_udiff() 関数を使用して通常の配列間の異なる値を比較し、array_diff_key() 関数を使用して異なるキー値を持つ配列間の異なる値を比較し、array_udiff_assoc() 関数を使用して比較することができます。異なる値の多次元配列。これらの関数の使用をマスターすると、PHP 開発中のデータ処理に非常に役立ちます。

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

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