現在の位置: ホーム> 最新記事一覧> array_intersect_uassocとarray_intersect_assocの具体的な違いは何ですか?また、使用する方が適切なのはいつですか?

array_intersect_uassocとarray_intersect_assocの具体的な違いは何ですか?また、使用する方が適切なのはいつですか?

gitbox 2025-08-30

PHPでは、Arrayの交差点を扱う多くの関数があり、その中にはarray_interect_assocおよびarray_intersect_uassocは、しばしば混乱しているが非常に類似した関数を持っている2つの関数です。それらはすべて複数の配列の交差を計算するために使用されますが、配列キー(キー)を比較すると異なる動作をします。この記事では、これら2つの機能の違いを詳細に説明し、実用的な提案をします。


1。基本機能の紹介

  • array_intersect_assoc(array $ array1、array $ array2、array ... $ array):array

    配列の交差点を計算し、比較時に値(値)を考慮するだけでなく、キーを厳密に比較します。重要な比較は、PHP(つまり== )を使用したデフォルトの平等判断です。

  • array_intersect_uassoc(array $ array1、array $ array2、array ... $ array、callable $ key_compare_func):array

    array_intersect_assocと同様ですが、キーの比較では、デフォルトの等式比較の代わりに、ユーザー定義のコールバック関数$ key_compare_funcを使用します。


2。特定の違い

特徴array_intersect_assoc array_intersect_uassoc
値を比較しますはいはい
比較キーはいはい
キーを比較する方法デフォルトのキー比較(==)比較のためのユーザー定義のコールバック関数
カスタム比較をサポートするかどうかいいえはい
使用例比較関数に合格する必要はありません比較キーに渡す必要があるコールバック関数

3。コードの例

<?php
$array1 = ["a" => "green", "b" => "brown", "c" => "blue", "1" => "red"];
$array2 = ["a" => "green", "1" => "red", "b" => "brown", "c" => "blue"];

// array_intersect_assoc キーと値を直接比較します
$result_assoc = array_intersect_assoc($array1, $array2);
// 出力結果:["a" => "green", "b" => "brown", "c" => "blue"]
print_r($result_assoc);

// カスタム比較関数,キーを比較するときの症例感度
function key_compare_func($key1, $key2) {
    return strcmp($key1, $key2);
}

$array3 = ["A" => "green", "b" => "brown", "c" => "blue"];
$result_uassoc = array_intersect_uassoc($array1, $array3, "key_compare_func");
// 出力結果:["b" => "brown", "c" => "blue"]
print_r($result_uassoc);
?>

4。いつ選択するのですか?

  • array_intersect_assocを使用:

    アレイキーと値を比較するだけで、カスタムルール(ケース非感受性、タイプ変換など)を必要としない場合、簡潔で効率的な選択です。

  • array_intersect_uassocを使用してください:

    キーの比較方法に特別なニーズが必要な場合:

    • 大文字と小文字を区別

    • より複雑な比較ロジックが必要です

    • 比較キーは、カスタムオブジェクトまたは複雑なタイプです

    現時点では、コールバック関数を渡すことにより、柔軟なキー比較ルールを実装できます。


5。概要

  • array_intersect_assocは、デフォルトのキー値の比較に基づいた配列交差点です。

  • array_intersect_uassocは、より柔軟なキー比較メカニズムを提供し、ユーザーが比較ロジックをカスタマイズできるようにします。

  • ビジネスニーズに基づいてカスタムキーを比較する必要があるかどうかを決定すると、適切な関数を選択すると、より堅牢で保守可能なコードを書き込むことができます。