現在の位置: ホーム> 最新記事一覧> array_uintersect_uassoc()機能の詳細な説明php:arrayのキーと値の交差点を比較する方法

array_uintersect_uassoc()機能の詳細な説明php:arrayのキーと値の交差点を比較する方法

gitbox 2025-06-13

1。array_uintersect_uassoc()関数は何ですか

PHPでは、array_uintersect_uassoc()は、2つ以上の配列の交点を計算するために使用される関数です。従来のarray_intersect()とは異なり、array_uinterect_uassoc()は、配列の値を比較するだけでなく、配列のキーを比較し、ユーザー定義のコールバック関数をサポートして比較プロセスを制御します。

1.1関数定義

array_uintersect_uassoc()関数は次のように定義されます。

 
function array_uintersect_uassoc(array $array1, array $array2, array ...$arrays, callable $key_compare_func, callable $value_compare_func) : array;
        

関数パラメーター説明:

  • array1、array2、... :比較する必要がある配列。
  • key_compare_func :配列キーを比較するために使用されるコールバック関数。
  • value_compare_func :配列値を比較するために使用されるコールバック関数。

戻り値:この関数は、2つ以上の配列間のキーと値の一致の交点を含む配列を返します。

1.2コールバック関数

array_uintersect_uassoc()関数には、配列のキーと値を比較するために2つのコールバック関数が必要です。これらの2つのコールバック関数は、整数値を返して、2つの要素が等しいかサイズであるかを決定する必要があります。 0を返すことは一致することを意味し、正または負のことを返すことは不一致を意味します。

array_uintersect_uassoc()関数とそのコールバック関数を使用する方法を示す例を以下に示します。

 
$array1 = array('a' => 'apple', 'b' => 'banana', 'c' => 'cherry');
$array2 = array('c' => 'cherry', 'd' => 'date', 'e' => 'elderberry');

$result = array_uintersect_uassoc(
    $array1,
    $array2,
    'strcasecmp',  // キー名の比較コールバック関数
    function($a, $b) {  // 値の比較コールバック関数
        if ($a === $b) {
            return 0;
        }
        return ($a > $b) ? 1 : -1;
    }
);

print_r($result);
        

出力の結果は次のとおりです。

配列([c] =>チェリー)

上記のコードでは、strcasecmp()を使用してキー名(ケース非感受性)を比較し、匿名関数を定義して値のサイズを比較します。

2。array_uinterect_uassoc()関数のシナリオを使用します

array_uintersect_uassoc()関数は、特にカスタムルールに基づいて配列のキーと値を比較する必要がある場合、複数の配列で一般的な要素を比較するのに非常に適しています。たとえば、Webサイトのユーザーの興味と趣味を処理しているとしたら、この関数を使用して複数のユーザーの間で共通の関心を見つけることができます。

3。array_uintersect_uassoc()関数のアプリケーション例

自動車クラブがあり、各メンバーが異なる車両情報を持っているとしましょう。クラブとメンバーの間で共有されている車両を見つけたいと考えています。 Array_uintersect_uassoc()を使用して比較できます。

 
$member_cars = array(
    'Amanda' => 'Porsche',
    'Tina' => 'Audi',
    'Luis' => 'Mercedes',
    'Tom' => 'BMW'
);

$club_cars = array(
    'Rob' => 'Porsche',
    'Tina' => 'Audi',
    'Lena' => 'Mercedes',
    'Tom' => 'BMW'
);

$common_cars = array_uintersect_uassoc(
    $member_cars,
    $club_cars,
    function($key1, $key2) {
        return strcmp($key1, $key2);
    },
    function($value1, $value2) {
        return strcmp($value1, $value2);
    }
);

print_r($common_cars);
        

出力の結果は次のとおりです。

 array([tina] => audi [luis] => mercedes [tom] => bmw)

この例は、メンバーやクラブが所有する車両を比較する方法を示しています。

4。概要

array_uintersect_uassoc()関数は、複数の配列で一般的なキーと値を見つけるのに役立つ効率的な配列比較ツールです。カスタムコールバック関数を使用すると、キーと値の比較ルールを正確に制御できるため、さまざまなシナリオに柔軟に適用できます。

この関数を使用する場合は、適切なコールバック関数を提供して、キーと値の比較を処理して正確な結果を確保することを忘れないでください。