Php 从另一个集合中存在的集合中删除

Php 从另一个集合中存在的集合中删除,php,laravel,collections,Php,Laravel,Collections,假设我有两个集合,它们都具有phone属性: $contacts = Contact::all(); $optouts = Optout::all(); 我想更新$contacts集合并删除所有被选中的联系人。因此,我想删除$optouts中存在其手机的所有$contacts 我该怎么做 $contacts = Contact::all(); $optouts = Optout::all()->pluck('phone'); $filtered = $contacts->wher

假设我有两个集合,它们都具有
phone
属性:

$contacts = Contact::all();
$optouts = Optout::all();
我想更新
$contacts
集合并删除所有被选中的联系人。因此,我想删除
$optouts
中存在其
手机的所有
$contacts

我该怎么做

$contacts = Contact::all();
$optouts = Optout::all()->pluck('phone');

$filtered = $contacts->whereNotIn('phone', $optouts);
更多信息请点击此处:

一个选项是:

$phones = $optouts->pluck('phone')->toArray();

$newContacts = $contacts->reject(function ($contact) use ($phones) {
    return in_array($contact->phone, $phones);
});