PHP では、2 つの配列を比較することで、それらの違いをすぐに取得できます。この記事では、2 つの配列を比較し、それらの違いを取得するいくつかの方法を検討します。
array_diff() 関数は、2 つの配列を比較するための PHP の一般的なメソッドの 1 つです。 2 つ以上の配列を引数として受け取り、最初の配列と他の配列の差を返します。具体的には、最初の配列にのみ出現する値を含む配列を返します。以下に例を示します。
$array1 = array("red", "green", "blue"); $array2 = array("green", "blue", "yellow"); $diff = array_diff($array1, $array2); print_r($diff);
上の例では、array_diff() は $array1 にのみ現れる値、つまり「red」を返します。
array_diff_assoc() 関数は、連想配列のキーと値の違いを比較するために使用されます。 2 つ以上の配列を引数として受け取り、最初の配列と他の配列の差を返します。 array_diff() とは異なり、array_diff_assoc() はキーと値の一致を考慮します。以下に例を示します:
$array1 = array("a"=>"red", "b"=>"green", "c"=>"blue"); $array2 = array("a"=>"red", "b"=>"blue", "c"=>"green"); $diff = array_diff_assoc($array1, $array2); print_r($diff);
上記の例では、array_diff_assoc() は、$array1 内の異なるキーまたは値を持つエントリのみを返します。つまり、「b」=>「green」および「c」= > ;"青"。
array_udiff() 関数は 2 つ以上の配列を比較し、指定されたコールバック関数を使用して値を比較します。コールバック関数には、比較値である 2 つのパラメータが必要です。以下に例を示します:
function compare($a, $b) { if ($a === $b) { return 0; } return ($a > $b) ? 1 : -1; } $array1 = array("red", "green", "blue"); $array2 = array("GREEN", "BLUE", "yellow"); $diff = array_udiff($array1, $array2, 'compare'); print_r($diff);
ここでは、2 つの要素の値を比較する比較関数を定義します。次に、この関数を使用して array_udiff() 関数を呼び出し、結果を $diff 変数に保存します。 array_udiff() は、$array1 にのみ現れる値、つまり「red」を返します。
array_diff_uassoc() 関数は、2 つの配列を比較します。指定されたコールバック関数を使用して、連想配列内のキーと値を比較します。このコールバック関数には、比較のキーと値という 2 つのパラメータが必要です。以下に例を示します。
function compare($a, $b) { $key_compare = strcmp($a, $b); if ($key_compare === 0) { return 0; } return ($key_compare > 0) ? 1 : -1; } $array1 = array('a' => 'red', 'b' => 'green', 'c' => 'blue'); $array2 = array('a' => 'red', 'b' => 'blue', 'd' => 'green'); $diff = array_diff_uassoc($array1, $array2, 'compare'); print_r($diff);
ここでは、2 つの要素のキーを比較する比較関数を定義します。次に、この関数を使用して array_diff_uassoc() 関数を呼び出し、結果を $diff 変数に保存します。 array_diff_uassoc() は、$array1 内の異なるキーまたは値、つまり "b" = "green" および "c" = "blue" を持つエントリのみを返します。
概要
PHP では、考慮する必要がある要素に応じて、2 つ以上の配列を比較する方法について多くのオプションがあります。たとえば、単一の配列内の値を比較する必要があるだけの場合は、array_diff() 関数を使用するのが良い選択です。キーと値の一致を考慮する必要がある場合は、array_diff_assoc() 関数を使用する必要があります。カスタムの比較方法が必要な場合は、array_udiff() 関数と array_diff_uassoc() 関数を使用できます。どの方法を選択しても、単純な比較で 2 つの配列の違いをすぐに見つけることができます。
以上がPHPで2つの配列の違いを比較する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。