在 PHP 中,lambda 函數可用作處理陣列交集和並集的優雅方法。對於交集,使用 array_filter() 函數結合 lambda 函數來過濾元素,確定它們是否存在於另一個數組中;對於並集,使用 array_reduce() 函數結合 lambda 函數在數組之間合併唯一元素。透過這些方法,可以簡化計算並提高程式碼的靈活性和可讀性。

PHP 中使用lambda 函數計算陣列交集和並集的優雅方法
PHP 中的lambda 函數,也稱為匿名函數,提供了一種簡單的方法來處理和轉換陣列。透過利用它們的簡潔性,我們可以用更少的程式碼實現更複雜的陣列操作。
計算陣列交集
陣列交集是兩個或多個陣列中同時存在的元素集合。我們可以使用 array_intersect() 函數計算交集,但使用 lambda 函數可以更優雅地實作。
<?php
$array1 = [1, 2, 3, 4, 5];
$array2 = [3, 4, 5, 6, 7];
$intersection = array_filter($array1, function($value) use ($array2) {
return in_array($value, $array2);
});
print_r($intersection);
?>輸出:
Array
(
[2] => 3
[3] => 4
[4] => 5
)計算陣列並集
陣列並集是兩個或多個陣列中所有元素的集合。我們可以使用 array_merge() 函數計算並集,但 lambda 函數可以提供更靈活的方法。
<?php
$array1 = [1, 2, 3, 4, 5];
$array2 = [3, 4, 5, 6, 7];
$union = array_reduce($array1, function($result, $value) use ($array2) {
if (!in_array($value, $array2)) {
$result[] = $value;
}
return $result;
}, $array2);
print_r($union);
?>輸出:
Array
(
[0] => 3
[1] => 4
[2] => 5
[3] => 6
[4] => 7
[5] => 1
[6] => 2
)實戰案例
#考慮一個電子商務網站,您需要計算使用者購物車中所有商品的交集,以確定共同購買的商品。使用 lambda 函數,您可以輕鬆地完成此操作:
<?php
$user1Cart = [1, 2, 3, 4, 5];
$user2Cart = [3, 4, 5, 6, 7];
$commonItems = array_filter($user1Cart, function($value) use ($user2Cart) {
return in_array($value, $user2Cart);
});
// 展示共同购买的商品
foreach ($commonItems as $item) {
echo $item . " ";
}
?>輸出:
3 4 5
以上是PHP中使用lambda函數計算數組交集和並集的優雅方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!