我有 2 个模型集合。
例如
$full = collect([
[
'name' => 'name1', //id was omitted intentionally
],
[
'name' => 'name2', //id was omitted intentionally
],
[
'name' => 'name3', //id was omitted intentionally
],
]);
$diff = collect([
[
'id' => 6,
'name' => 'name1',
],
]);
我想在这样的事情之后收到这样的结果
$full->diff($full);
$result = [
[
'name' => 'name2',
],
[
'name' => 'name3',
],
];
如何在不使用 filter()
或 reject()
和 contains()
的情况下以更简洁的方式实现这一目标方式?
最佳答案
很难说为什么你不想将 filter
或 reject
与 contains
一起使用,但还有另一种解决方案:
$result = $full->pluck('name')->diff($diff->pluck('name'))->map(function($name) {
return [
'name' => $name
];
});
dd($result->toArray());
结果你会得到:
array:2 [▼
1 => array:1 [▼
"name" => "name2"
]
2 => array:1 [▼
"name" => "name3"
]
]
关于php - 拉拉维尔 5.7。减去模型实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52348709/