【PHP8.x】array_uintersect_assoc関数の使い方

作成日: 更新日:

array_uintersect_assoc関数は、複数の配列の中から、キーと値の両方が一致する要素を抽出する関数です。特に、値の比較にユーザーが定義したコールバック関数を使用できる点が最大の特徴です。これにより、デフォルトの比較演算子では判定できない、カスタムオブジェクトのプロパティ値や、特定のルールに基づいた文字列の比較など、柔軟な条件で共通要素を特定することが可能になります。

この関数は、比較対象となる配列を複数(最低2つ)と、値の比較に使用するコールバック関数を引数として受け取ります。コールバック関数は、比較する二つの値を引数に取り、最初の値が二番目の値よりも小さい場合は負の整数、等しい場合はゼロ、大きい場合は正の整数を返さなければなりません。

戻り値は、最初の配列に存在する要素のうち、他のすべての配列にもキーと値が完全に一致する要素として存在するものが含まれる新しい配列です。この際、抽出された要素のキーは、最初の配列のものがそのまま保持されます。

キーも比較対象となるため、array_uintersect関数とは異なり、要素の重複判定にキーの一致も要求されます。この機能は、複雑な構造を持つデータセットから、特定の基準で完全に一致するレコードを効率的に見つけ出す場面で特に役立ちます。PHP 8.4環境で利用できます。

基本的な使い方

構文(syntax)

array_uintersect_assoc(
    $first_array,
    $second_array,
    function ($value_a, $value_b) {
        return $value_a <=> $value_b;
    }
);

引数(parameters)

array $array1, array $array2, array ...$arrays, callable $key_compare_func

  • array $array1: 比較対象となる最初の配列
  • array $array2: 比較対象となる2番目の配列
  • array ...$arrays: 比較対象となる追加の配列(複数指定可能)
  • callable $key_compare_func: 配列のキーを比較するために使用されるコールバック関数

戻り値(return)

array

指定されたコールバック関数によって比較された、配列の共通部分をキーと値のペアとして含む新しい配列を返します。

【PHP8.x】array_uintersect_assoc関数の使い方 | いっしー@Webエンジニア