【PHP8.x】array_intersect_uassoc関数の使い方
作成日: 更新日:
array_intersect_uassoc関数は、複数の配列間で共通の要素を抽出する関数です。この関数は、単に値だけでなく、キーも考慮して共通部分を判断します。特に、キーの比較方法をユーザーが指定するコールバック関数によって柔軟に定義できる点が大きな特徴です。
この関数を使用する際は、まず比較の基準となる最初の配列を指定し、次に比較対象となる追加の配列を任意の数だけ指定します。そして、最後にキーの比較ロジックを実装したコールバック関数を渡します。このコールバック関数は二つのキーを引数として受け取り、それらを比較した結果(最初のキーが小さい場合は負、等しい場合はゼロ、大きい場合は正の整数)を返さなければなりません。
比較の結果、すべての入力配列に共通して存在する要素のみが新しい配列として返されます。この新しい配列の要素は、最初の配列から取得され、元のキーと値のペアがそのまま保持されます。
array_intersect_uassoc
関数は、標準的な比較では対応できない、より複雑なキーの比較ロジックが必要な場合に非常に役立ちます。例えば、キーを特定のルールに基づいて比較したり、大文字・小文字を区別しない比較を行ったりしたい場合などに利用することで、柔軟かつ効率的に配列の共通部分を特定することが可能です。
基本的な使い方
構文(syntax)
<?php
$array1 = ["keyA" => "value1", "keyB" => "value2"];
$array2 = ["keyA" => "valueX", "keyC" => "valueY"];
$key_compare_callback = function ($key1, $key2) {
// キーを比較するロジック(例: 大文字小文字を区別して比較)
return strcmp($key1, $key2);
};
$intersected_array = array_intersect_uassoc($array1, $array2, $key_compare_callback);
?>
引数(parameters)
array $array1, array ...$arrays, callable $key_compare_func
- array $array1: 比較対象の最初の連想配列
- array ...$arrays: 比較対象となる追加の連想配列(複数指定可能)
- callable $key_compare_func: 配列のキーを比較するためのコールバック関数
戻り値(return)
array
指定されたキーと値のペアの組み合わせで、配列間で共通する要素を返します。