array_uintersect()
函式用於計算兩個或多個陣列的交集,使用使用者自定義的回撥函式來比較陣列的值。
用法:
array_uintersect(array $array1, array $array2, callable $callback) : array
引數說明:
$array1
:第一個陣列。$array2
:第二個陣列。$callback
:使用者自定義的回撥函式,用於比較陣列的值。該函式應接受兩個引數,並返回一個整數值:- 如果返回值小於 0,則表示第一個引數小於第二個引數。
- 如果返回值等於 0,則表示第一個引數等於第二個引數。
- 如果返回值大於 0,則表示第一個引數大於第二個引數。
返回值: 返回一個包含交集值的新陣列。
示例:
// 定義一個回撥函式來比較陣列的值
function compareValues($a, $b) {
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}
// 兩個陣列
$array1 = [1, 2, 3, 4, 5];
$array2 = [4, 5, 6, 7, 8];
// 呼叫 array_uintersect() 函式獲取交集
$result = array_uintersect($array1, $array2, 'compareValues');
// 輸出結果
echo '<pre>';
print_r($result);
echo '</pre>';
輸出結果:
Array
(
[0] => 4
[1] => 5
)
在上面的示例中,我們定義了一個回撥函式 compareValues()
,它比較兩個值是否相等。然後,呼叫 array_uintersect()
函式來計算 $array1
和 $array2
的交集,使用 compareValues()
函式進行比較。最後,透過使用 <pre>
標籤來格式化輸出結果陣列。在這個例子中,交集結果是 [4, 5]
。