在 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中文網其他相關文章!