ホームページ >バックエンド開発 >PHPチュートリアル >特定のキーに基づいて連想配列の違いを効率的に見つけるにはどうすればよいですか?

特定のキーに基づいて連想配列の違いを効率的に見つけるにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-26 05:04:13205ブラウズ

How to Efficiently Find Differences in Associative Arrays Based on a Specific Key?

2 次元配列の結合値の違いの比較

プログラミングでは、多くの場合、2 つの配列を比較し、違いのみを抽出する必要があります。このタスクは、配列に連想データが含まれている場合、特に特定のキー値に焦点を当てて比較する必要がある場合に複雑になります。

データの連想行を持つ 2 つの配列を考えます。

$array1 = array(
    array('ITEM' => 1),
    array('ITEM' => 2),
    array('ITEM' => 3),
);

$array2 = array(
    array('ITEM' => 2),
    array('ITEM' => 3),
    array('ITEM' => 1),
    array('ITEM' => 4),
);

目的は、次のとおりです。 2 番目の配列をフィルターして最初の配列に存在する項目を除外しますが、特に 'ITEM' を比較します。

カスタム比較関数での array_udiff の使用

array_diff() 関数は行全体を比較するため、この目的には不十分です。 「ITEM」値のみに焦点を当てるために、array_udiff() のカスタム比較関数を定義します。

function udiffCompare($a, $b)
{
    return $a['ITEM'] - $b['ITEM'];
}

この関数は、「ITEM」値を減算し、その差を返します。

今、この関数を array_udiff() で使用できます:

$arrdiff = array_udiff($arr2, $arr1, 'udiffCompare');

$arrdiff 変数には、必要な値が含まれます。 result:

Array
(
    [3] => Array
        (
            [ITEM] => 4
        )
)

このアプローチでは、既存の配列構造が保存され、比較のために特定の 'ITEM' キー値に焦点が当てられます。

以上が特定のキーに基づいて連想配列の違いを効率的に見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。