【PHP8.x】array_intersect_ukey関数の使い方
作成日: 更新日:
array_intersect_ukey関数は、複数の配列から共通のキーを持つ要素を抽出する関数です。この関数は、キーを比較する際にユーザーが定義したコールバック関数を使用できる点が大きな特徴です。具体的には、最初に指定された配列のキーと、それに続くすべての比較対象配列のキーを、指定されたコールバック関数によって比較します。このコールバック関数は2つのキーを受け取り、それらの比較結果に基づいて整数値(キーが等しければ0、最初のキーが小さい場合は負の値、大きい場合は正の値)を返します。array_intersect_ukey関数は、すべての配列に共通して存在するキーを持つ、最初の配列からの要素のみを新たな配列として返します。これにより、単純な厳密比較では難しい、より複雑なロジックに基づいたキーの共通部分を抽出したい場合に非常に有効です。例えば、キーが大文字・小文字を区別しない比較を行いたい場合や、キーの一部だけを見て共通性を判断したい場合などに活用できます。PHPの他の配列関数であるarray_intersect_key関数と似ていますが、キーの比較方法を柔軟にカスタマイズできる点で異なります。
基本的な使い方
構文(syntax)
<?php
$array1 = ['apple' => 1, 'banana' => 2, 'cherry' => 3];
$array2 = ['banana' => 4, 'date' => 5, 'apple' => 6];
$result = array_intersect_ukey(
$array1,
$array2,
function ($keyA, $keyB) {
return strcmp($keyA, $keyB);
}
);
print_r($result);
引数(parameters)
array $array1, array ...$arrays, callable $key_compare_func
- array $array1: 比較対象の最初の配列
- array ...$arrays: 比較対象となる残りの配列 (複数指定可能)
- callable $key_compare_func: 配列のキーを比較するために使用するコールバック関数
戻り値(return)
array
第一引数で指定された配列と、それに続く配列との間で、キーを比較して共通する要素のみを抽出した新しい配列を返します。