【发布时间】:2017-07-09 22:00:01
【问题描述】:
假设我有 2 个集合,它们都具有 phone 属性:
$contacts = Contact::all();
$optouts = Optout::all();
我想更新$contacts 集合并删除所有选择退出的集合。所以我想删除所有$contacts,其phone存在于$optouts中。
我该怎么做?
【问题讨论】:
标签: php laravel collections
假设我有 2 个集合,它们都具有 phone 属性:
$contacts = Contact::all();
$optouts = Optout::all();
我想更新$contacts 集合并删除所有选择退出的集合。所以我想删除所有$contacts,其phone存在于$optouts中。
我该怎么做?
【问题讨论】:
标签: php laravel collections
$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);
});
【讨论】: