PHPでは、 array_diff_uassoc()は、ユーザー定義の比較関数に基づいて2つの配列に異なるキー名を持つ要素を返すことができる非常に強力な配列関数です。関数の最初のパラメーターは通常、メイン配列と呼ばれ、操作全体で非常に重要な役割を果たします。それでは、なぜ最初の配列パラメーターがarray_diff_uassoc()関数のメイン配列として重要な役割を果たすのですか?
array_diff_uassoc()関数の関数は、2つ以上の配列のキー値を比較し、異なるキー名を持つ要素を返すことです。比較は、ユーザーが提供するコールバック関数を介して実行されます。関数の署名は次のとおりです。
array_diff_uassoc ( array $array1 , array $array2 [, array $... ], callable $key_compare_func ) : array
$ array1 :メイン配列、最初のパラメーター、比較する配列です。
$ array2、... :比較する他の配列。
$ key_compare_func :配列のキー名を比較するためのユーザー定義の比較関数。
メイン配列のベンチマークの役割
array_diff_uassoc()の最初のパラメーター(メイン配列)は、比較プロセスでベンチマークの役割を再生します。関数を実行すると、メイン配列の各キー名は他の配列のキー名と比較されます。最終的に、メイン配列に存在するが、他のアレイには存在しない返されたキー価値ペア。したがって、メイン配列は結果の内容を決定します。
メイン配列は、返されたキー値ペアを決定します
比較関数の目的は、メイン配列に存在するが他の配列には見られないキー値ペアを返すことです。比較の結果に関係なく、メイン配列の要素のみが最終的な返品結果に表示されます。メイン配列内の要素が他の配列に同じキー名を持ち、比較ルールに準拠している場合、結果から除外されます。
カスタム比較関数の役割
ユーザー定義の比較関数( key_compare_func )を使用してキー名を比較します。これにより、2つの配列のキー名が等しいかどうかが判断されます。この比較関数は、通常、メイン配列のキーと他の配列のキーの2つのパラメーターを受信します。この比較関数を通じて、特定のルールに従ってキー名が等しいかどうかを判断できます。メイン配列の各キー名は、他の配列のキー名と比較されます。
シーケンスの質問
注意すべきもう1つの側面は、 array_diff_uassoc()がメイン配列の順序と、他の配列に同じキー名を持つ要素が含まれているかどうかを比較することです。 2つの配列のキー価値のペアが同じ順序であるが、メイン配列のキー名が他の配列には見られない場合、それはまだ異なる要素として扱われます。
Array_diff_uassoc()が簡単な例でどのように機能するかを示しましょう。 2つの配列があり、最初の配列に存在するが2番目の配列にはない要素を見つけたいとします。
<?php
// メイン配列と別の配列を定義します
$array1 = [
'a' => 1,
'b' => 2,
'c' => 3
];
$array2 = [
'a' => 1,
'b' => 4
];
// カスタム比較関数:キー名を比較するために使用されます
function compare_keys($key1, $key2) {
return strcmp($key1, $key2);
}
// 使用 array_diff_uassoc 配列を比較します
$result = array_diff_uassoc($array1, $array2, 'compare_keys');
// 出力結果
print_r($result);
?>
Array
(
[c] => 3
)
この例では、メイン配列$ array1には3つのキー値ペアが含まれていますが、 $ array2には2つのキー値ペアのみがあります。 array_diff_uassoc()関数を介して、 $ array1であるが$ array2ではないキー値ペア'c => 3を見つけます。ご覧のとおり、返された配列にはメイン配列に存在するが、他の配列には見られない要素のみがあります。
一般に、 array_diff_uassoc()の最初の配列パラメーターは、比較結果の内容を決定するメイン配列として決定的な役割を再生します。メイン配列のキー名を他の配列のキー名と比較することにより、最終的なリターンはメイン配列に存在するが、他の配列には見られない要素です。したがって、この関数におけるメイン配列の役割を理解することは、関数の合理的な使用に不可欠です。