PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのarray_uintersect()関数とは?使い方とサンプルコードを解説

array_uintersect()関数は、ユーザーが定義したコールバック関数を使って複数の配列の「値」を比較し、その結果をもとに新しい配列を返すPHPの組み込み関数です。具体的には、最初の配列に含まれる値のうち、他のすべての配列にも存在する値(共通する値)だけを抽出した配列を返します。なお、この関数が比較するのは値のみで、キーは評価の対象になりません。

構文

array_uintersect(arr1, arr2, arr3, … , compare_func)

パラメータ

  • arr1 − 比較の基準となる最初の配列です。

  • arr2 − arr1と比較される2番目の配列です。

  • arr3 − さらに比較したい配列です。3つ以上の配列も指定できます。

  • compare_func − 値の比較に使用されるコールバック関数です。この関数は、第1引数が第2引数より小さい場合には0未満の整数、等しい場合には0、大きい場合には0より大きい整数を返す必要があります。

戻り値

array_uintersect()関数は、最初の配列に含まれる値のうち、他のすべての配列にも存在する値のみを格納した配列を返します。共通する値がひとつもない場合は、空の配列が返されます。

使用例

以下に、array_uintersect()関数を使用したサンプルコードを示します。

<?php
function compare_func($a, $b) {
   if ($a === $b) {
      return 0;
   }
   return ($a > $b)? 1:-1;
}
$arr1 = array("p"=>"one","q"=>"two","r"=>"three");
$arr2 = array("p"=>"three","q"=>"four","s"=>"three");
$res = array_uintersect($arr1, $arr2, "compare_func");
print_r($res);
?>

出力結果

上記コードの実行結果は次のとおりです。

Array
(
[r] => three
)

コードの解説

この例では、$arr1と$arr2の両方に存在する値「three」だけが結果として返されています。$arr1ではキー「r」に対応していますが、$arr2側ではキー「p」と「s」に対応しているため、キーは一致していません。それでも結果に含まれているのは、array_uintersect()が値のみを比較対象とするためです。大文字・小文字を区別しない比較など、独自の比較ルールを適用したい場合に、この関数は特に有用です。

  1. PHPのarray_uintersect()関数とは?使い方とサンプルコードを解説

    array_uintersect()関数は、ユーザーが定義したコールバック関数を使って複数の配列の「値」を比較し、その結果をもとに新しい配列を返すPHPの組み込み関数です。具体的には、最初の配列に含まれる値のうち、他のすべての配列にも存在する値(共通する値)だけを抽出した配列を返します。なお、この関数が比較するのは値のみで、キーは評価の対象になりません。構文array_uintersect(arr1, arr2, arr3, … , compare_func)パラメータarr1 − 比較の基準となる最初の配列です。arr2 − arr1と比較される2番目の

  2. PHPのarray()関数とは?配列の作成方法をわかりやすく解説

    PHPのarray()関数は、配列を作成するための関数です。PHPにおける配列には、主に以下の3種類が存在します。インデックス配列 − 数値インデックス(0から始まる番号)で要素を管理する配列連想配列 − 文字列などの名前付きキーで要素を管理する配列多次元配列 − 配列の中に1つ以上の配列を含む、入れ子構造の配列構文// 数値インデックスを持つ配列(インデックス配列) array(value1, value2, ...); // 名前付きキーを持つ配列(連想配列) array(key1 => value1, key2 => value2, ...)パラメータvalue − 配列に