関数 array_uintersect

関数 array_uintersect は、値を比較するためにコールバック関数を使用して配列の共通部分を計算します。これは、最初の配列から、他のすべての配列に存在するすべての要素を含む配列を返します。値の比較はユーザー定義のコールバック関数を通じて行われます。

構文

phparray_uintersect(array $array1, array $array2, ..., callable $value_compare_func): array;

例

コールバック関数を使用して2つの配列の値を比較し、共通部分を見つけます:

php<?php
  $array1 = [1, 2, 3, 4, 5];
  $array2 = [2, 4, 6, 8, 10];
  
  $res = array_uintersect($array1, $array2, function($a, $b) {
    if ($a === $b) {
      return 0;
    }
    return ($a > $b) ? 1 : -1;
  });
  
  print_r($res);
?>

コードの実行結果:

php[2, 4]

例

カスタム関数を使用した文字列配列の比較:

php<?php
  $array1 = ['a', 'b', 'c', 'd', 'e'];
  $array2 = ['b', 'd', 'f', 'h', 'j'];
  
  $res = array_uintersect($array1, $array2, function($a, $b) {
    return strcmp($a, $b);
  });
  
  print_r($res);
?>

コードの実行結果:

php['b', 'd']

関連項目

  • 関数 array_intersect,
    配列の共通部分を計算する
  • 関数 array_intersect_assoc,
    インデックスの追加チェック付きで配列の共通部分を計算する
  • 関数 array_uintersect_assoc,
    コールバック関数を使用してインデックスの追加チェック付きで配列の共通部分を計算する