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

作成日: 更新日:

array_udiff_uassoc関数は、複数の配列を比較し、最初の配列にのみ存在する要素を、ユーザー定義の比較関数を用いて検出する関数です。この関数は、配列の要素の値とキーの両方を、開発者が定義したルールに基づいて比較できる点が特徴です。

具体的には、まず最初に比較対象となる配列を指定し、その後に比較したい追加の配列を複数指定します。さらに、要素の値同士を比較するためのコールバック関数と、要素のキー同士を比較するためのコールバック関数をそれぞれ引数として渡します。これらのコールバック関数は、2つの引数を受け取り、比較結果に応じて負の数、0、正の数のいずれかを返します。0が返された場合、その値またはキーは等しいと判断されます。

array_udiff_uassoc関数は、渡された値比較用コールバック関数とキー比較用コールバック関数が共に「等しい(0を返す)」と判断しない限り、その要素を最初の配列に固有の「差分」であると認識します。その結果、最初の配列に存在し、他のどの配列にも存在しない(ユーザー定義の比較基準で異なる)要素のみを抽出した新しい配列を返します。複雑なオブジェクトやカスタムデータ型の比較において、柔軟な差分検出を行う際に非常に役立ちます。

基本的な使い方

構文(syntax)

<?php
array_udiff_uassoc(
    array $array1,
    array $array2,
    array ...$arrays,
    callable $value_compare_func,
    callable $key_compare_func
): array

引数(parameters)

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

  • array $array1: 比較対象となる最初の配列
  • array $array2: 比較対象となる2番目の配列
  • array ...$arrays: 比較対象となる追加の配列(複数指定可能)
  • callable $value_compare_func: 値を比較するためのユーザー定義関数
  • callable $key_compare_func: キーを比較するためのユーザー定義関数

戻り値(return)

array

与えられた配列を、指定されたユーザー定義比較関数を用いて比較し、差異のある要素のみを含む新しい連想配列を返します。

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