PHP 的集合类(Collection)没有直接提供交集运算的方法,但你可以使用 filter()
方法来实现交集操作。以下是一个示例:
<?php
use Illuminate\Support\Collection;
$collection1 = new Collection([1, 2, 3, 4, 5]);
$collection2 = new Collection([4, 5, 6, 7, 8]);
// 计算两个集合的交集
$intersection = $collection1->filter(function ($item) use ($collection2) {
return $collection2->contains($item);
});
// 输出结果
print_r($intersection->all()); // [4, 5]
在这个例子中,我们使用了 filter()
方法来筛选出 $collection1
中与 $collection2
包含相同元素的数据。use
关键字允许我们在闭包函数中访问外部变量(在这里是 $collection2
)。最后,我们使用 all()
方法将结果转换为数组并输出。