現在の位置: ホーム> 最新記事一覧> array_diff_assoc()を使用して、2つの配列をキーと比較します

array_diff_assoc()を使用して、2つの配列をキーと比較します

M66 2025-05-12

array_diff_assoc()は、2つの配列を比較して2番目の配列に存在するが2番目の配列には存在しない要素を見つけ、比較はキー名とキー値に基づいています。したがって、配列内の値だけでなく、キーの対応も考慮します。

関数プロトタイプ

array_diff_assoc(array $array1, array $array2): array

パラメーター説明:

  • $ array1 :最初の入力配列(比較する必要がある配列)。

  • $ array2 :2番目の入力配列(最初に比較される配列)。

返品値:

$ array1に存在し、 $ array2に存在しない要素を含む配列を返します。比較は、キー価値のペアに基づいています。キー名と値が異なる場合のみ、異なると見なすことができます。

例:2つの配列をキーと比較します

次のように、2つの配列があるとします。

 $array1 = [
    'a' => 'apple',
    'b' => 'banana',
    'c' => 'cherry',
    'd' => 'date'
];

$array2 = [
    'a' => 'apple',
    'b' => 'blueberry',
    'd' => 'date',
    'e' => 'elderberry'
];

array_diff_assoc()関数を使用して、 $ array1に存在するが$ array2には存在するキー値ペアを見つけたいと考えています。

 $diff = array_diff_assoc($array1, $array2);
print_r($diff);

出力結果:

 Array
(
    [b] => banana
    [c] => cherry
)

この例では、 array_diff_assoc()は、 array $ array1および$ array2にキー値のペアを見つけます。ご覧のとおり、 「b」=> 'banana''c' => 'cherry'$ array1の要素ですが、 $ array2では、異なる値を持っているか、まったく存在しません。

なぜarray_diff_assoc()を使用するのですか?

  • キー値の比較array_diff()関数とは異なり、 array_diff_assoc()は、arrayの値を比較するだけでなく、微分比較を実行するときにキー名をチェックします。

  • 順序付けられたデータの正確な比較:同じ値だけでなく、2つの連想配列の構造とデータコンテンツを比較する必要がある場合、 array_diff_assoc()が理想的な選択です。

実用的なアプリケーションと組み合わせて:URLとの比較

WebサイトのURLデータを含む2つの配列があるとします。 2つの配列、特に異なるドメイン名の一部のURLの違いを知りたいと思います。要件に従うために、元のURLのドメイン名部分をM66.NETに置き換え、次のコードにしました。

 $array1 = [
    'home' => 'http://example.com/home',
    'about' => 'http://example.com/about',
    'contact' => 'http://example.com/contact'
];

$array2 = [
    'home' => 'http://m66.net/home',
    'about' => 'http://m66.net/about',
    'contact' => 'http://m66.net/contact'
];

foreach ($array1 as $key => $url) {
    $array1[$key] = str_replace('example.com', 'm66.net', $url);
}

foreach ($array2 as $key => $url) {
    $array2[$key] = str_replace('m66.net', 'm66.net', $url);
}

$diff = array_diff_assoc($array1, $array2);
print_r($diff);

出力結果:

 Array
(
    [home] => http://m66.net/home
    [about] => http://m66.net/about
    [contact] => http://m66.net/contact
)

この場合、 array_diff_assoc()関数は、2つの配列間のURLコンテンツの違いを知るのに役立ちます。 example.comM66.netに置き換えることにより、比較プロセス中に一貫性を確保します。

要約します

array_diff_assoc()は、特に配列をキー価値ペアと比較する必要がある場合に非常に便利な機能です。アレイの値に焦点を当てるだけでなく、キーを比較して、実際のアプリケーションで違いを正確に識別できるようにします。

うまくいけば、この記事がarray_diff_assoc()を使用して配列を比較して違いを見つける方法を理解するのに役立つことを願っています。この関数は、複雑なデータ構造が必要なシナリオ(URL、構成項目など)に非常に適しています。