使用 php 集合類可高效計算數組交集和并集,具體步驟如下:利用 intersect() 方法計算交集:同時出現在兩個數組中的元素。利用 union() 方法計算并集:出現在任意一個數組中的元素。實戰案例:通過比較購物車內容,了解用戶重疊商品和獨一無二商品。
使用 PHP 集合類高效計算數組交集和并集
在 PHP 中,利用集合類可以高效地計算數組的交集和并集。集合類提供了一系列便捷的方法來操作集合,使相關任務變得更加簡單。
安裝集合類
可以使用 Composer 來安裝 PHP 集合類:
<a style='color:#f60; text-decoration:underline;' href="https://www.php.cn/zt/15906.html" target="_blank">composer</a> require phpcollection/phpcollection
登錄后復制
計算交集
交集是指同時出現在兩個數組中的元素。可以使用 intersect()
方法來計算交集:
$array1 = [1, 2, 3, 4, 5]; $array2 = [3, 4, 5, 6, 7]; $intersection = \PhpCollection\Set::fromArray($array1)->intersect(\PhpCollection\Set::fromArray($array2))->toArray(); print_r($intersection); // [3, 4, 5]
登錄后復制
計算并集
并集是指出現在任意一個數組中的元素。可以使用 union()
方法來計算并集:
$union = \PhpCollection\Set::fromArray($array1)->union(\PhpCollection\Set::fromArray($array2))->toArray(); print_r($union); // [1, 2, 3, 4, 5, 6, 7]
登錄后復制
實戰案例:比較兩個用戶購物車的內容
假設您有一個購物車系統,您需要比較兩個用戶的購物車中的商品。可以使用集合類來高效地計算商品的交集和并集,以了解用戶重疊的商品以及哪些商品是獨一無二的。
$user1Cart = [1, 2, 3, 4, 5]; $user2Cart = [3, 4, 5, 6, 7]; $intersection = \PhpCollection\Set::fromArray($user1Cart)->intersect(\PhpCollection\Set::fromArray($user2Cart))->toArray(); $union = \PhpCollection\Set::fromArray($user1Cart)->union(\PhpCollection\Set::fromArray($user2Cart))->toArray(); echo "重疊商品:"; print_r($intersection); echo "所有商品:"; print_r($union);
登錄后復制