array_udiff()
是 PHP 中的一個內置函數,用于計算兩個或多個數組之間的差集。這意味著,它將返回一個新數組,其中包含了在第一個數組中存在但在其他數組中不存在的元素。與 array_diff()
函數相比,array_udiff()
允許你使用自定義的比較函數來確定元素之間的差異。
函數原型:
array array_udiff(array $array1, array $array2, array $_ = null, callable $data_compare_func);
參數說明:
$array1
, $array2
, $_
:需要比較的數組。$data_compare_func
:用于比較數組元素的自定義函數。該函數應接受兩個參數,并返回一個整數值,表示它們之間的差異。如果返回值為正數,則表示第一個參數大于第二個參數;如果返回值為負數,則表示第一個參數小于第二個參數;如果返回值為零,則表示兩個參數相等。下面是一個使用 array_udiff()
函數的示例:
<?php
function compare_values($a, $b) {
if ($a < $b) {
return -1;
} elseif ($a > $b) {
return 1;
} else {
return 0;
}
}
$array1 = array(1, 2, 3, 4, 5);
$array2 = array(3, 4, 5, 6, 7);
$result = array_udiff($array1, $array2, 'compare_values');
print_r($result);
?>
輸出結果:
Array
(
[0] => 1
[1] => 2
)
在這個示例中,我們定義了一個名為 compare_values()
的自定義比較函數,用于比較兩個數字。然后,我們使用 array_udiff()
函數計算 $array1
和 $array2
之間的差集。最后,我們打印出結果數組,可以看到它包含了在 $array1
中存在但在 $array2
中不存在的元素(1 和 2)。