array_udiff()
函式用於比較兩個或多個陣列的差集,根據使用者自定義的回撥函式進行比較,並返回差集部分。
以下是array_udiff()
函式的用法及示例:
array_udiff(array1, array2, callback)
引數說明:
array1
: 必需,第一個陣列。array2
: 必需,第二個陣列。callback
: 必需,用於比較陣列元素的使用者自定義回撥函式。
回撥函式說明:
int callback ( $a, $b )
回撥函式用於比較兩個值 $a
和 $b
的大小,返回值為:
- 若
$a
小於$b
,則返回一個負數。 - 若
$a
大於$b
,則返回一個正數。 - 若
$a
等於$b
,則返回 0。
示例:
// 自定義回撥函式
function compare($a, $b) {
if ($a == $b) {
return 0;
} elseif ($a > $b) {
return 1;
} else {
return -1;
}
}
// 定義兩個陣列
$array1 = [1, 2, 3, 4, 5];
$array2 = [2, 4, 6];
// 使用 array_udiff() 函式比較兩個陣列的差集
$result = array_udiff($array1, $array2, 'compare');
// 輸出差集部分
echo "<pre>";
print_r($result);
echo "</pre>";
輸出結果:
Array
(
[0] => 1
[2] => 3
[4] => 5
)
在上面的例子中,我們定義了一個自定義的回撥函式 compare()
,用於比較兩個值的大小。然後使用 array_udiff()
函式比較陣列 $array1
和 $array2
的差集,其中差集部分被儲存到 $result
變數中。最後,使用 print_r()
函式列印出差集結果。