【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

第一引数で指定された配列と、それに続く配列との間で、キーを比較して共通する要素のみを抽出した新しい配列を返します。

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