現在の位置: ホーム> 最新記事一覧> array_diff_uassoc()関数の基本的な構文と使用例

array_diff_uassoc()関数の基本的な構文と使用例

M66 2025-06-06

PHPでは、 array_diff_uassoc()は、アレイを比較する関数であり、2つ以上の配列を比較して、カスタムキー値の比較ルールに基づいて差分パーツを返すことができます。この関数は、キーに基づいて複雑なデータ構造または比較が必要なシナリオで非常に役立ちます。

1。基本的な構文

array_diff_uassoc(array $array1, array $array2, callable $key_compare_func): array

パラメーター説明

  • array1 :比較する必要がある最初のアレイ。

  • array2 :比較する必要がある2番目の配列。複数の配列にすることができます。

  • key_compare_func :キーを配列と比較し、整数を返す必要があるコールバック関数。返品値はキー値の順序を決定します。負の数を返す場合、最初のキーは2番目のキーよりも小さいことを意味します。ゼロを返す場合、2つのキーが等しいことを意味します。正の数を返す場合、最初のキーが2番目のキーよりも大きいことを意味します。

戻り値:この関数は、さまざまな要素、つまり最初の配列に存在するが2番目の配列には存在する要素を含む配列を返し、比較はカスタムキー値ルールに基づいています。

2。実用的なアプリケーションの例

$ array1$ array2の2つの配列があるとしたら、異なるキーを持つ2つの配列の部分を見つけたいとします。

 <?php
// 2つの配列を定義します
$array1 = [
    "a" => 1,
    "b" => 2,
    "c" => 3
];

$array2 = [
    "a" => 1,
    "b" => 2,
    "d" => 4
];

// カスタムキー比較関数
function custom_key_compare($key1, $key2) {
    return strcmp($key1, $key2);  // 使用 strcmp 比較キー
}

// 使用 array_diff_uassoc 配列を比較します
$result = array_diff_uassoc($array1, $array2, 'custom_key_compare');

// 出力結果
print_r($result);
?>

出力

 Array
(
    [c] => 3
)

この例では、2つの配列$ array1$ array2を定義します。 $ array1にはキー「A」「B」 、および「C」が含まれ、 $ array2にはキー「A」「B」 、および「D」が含まれます。 array_diff_uassoc()関数を使用する場合、 custom_key_compare()関数を使用して配列のキーを比較します。この例では、キー「C」に対応する値3は$ array1に存在するが、 $ array2には見られないため返されます。

3。注意すべきこと

  • array_diff_uassoc()関数は、値を比較するだけでなく、キーのカスタムルールに基づいて比較します。カスタムキー比較ルールが必要ない場合は、 array_diff_assoc()を使用できます。

  • コールバック関数がキーを不合理な方法で比較する場合、特に多くのまたは複雑な配列要素がある場合、誤った結果につながる可能性があります。

  • この関数は元の配列を変更せず、新しい配列を返します。

4.シナリオを使用します

array_diff_uassoc()は、次のシナリオで一般的に使用されます。

  • 同じキーと異なる値を持つ2つの配列を比較します。

  • カスタムキーに基づいてルールを比較する必要がある場合は、2つの配列の違いを見つけます。

  • 特に複雑なキー価値ペアが関与している場合、データ処理、分析、または重複排除に使用されます。

5。実際のURL例と組み合わせた

コードにURL操作を巻き込み、URLのドメイン名をM66.NETに置き換える必要がある場合は、次のコードを参照できます。

 <?php
// 含有量を定義します URL の配列
$urls = [
    "https://www.example.com/page1",
    "https://www.example.com/page2",
    "https://www.example.com/page3"
];

// 使用 array_map 定期的な交換 URL ドメイン名
$updatedUrls = array_map(function($url) {
    return preg_replace('/https:\/\/www\..+\.com/', 'https://m66.net', $url);
}, $urls);

// 交換後に結果を出力します
print_r($updatedUrls);
?>

出力