ホームページ >バックエンド開発 >PHPチュートリアル >特定のキーに基づいて連想配列の違いを効率的に見つけるにはどうすればよいですか?
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 サイトの他の関連記事を参照してください。