laravel - 如何比较 2 个集合的所有属性并返回 Laravel 上的不同对象?
问题描述
基本上我有相同模型(项目)的集合。
$items1 = Item::select('id','produto_id','endereco_id' ... )->where(...)get()
$items2 = Item::select('id','produto_id','endereco_id' ... )->where(...)get()
$items1 具有如下值:
[
0 => [
'id'=> 2,
'produto_id' => 4,
'endereco_id' => 4,
],
1 => [
'id'=> 3,
'produto_id' => 4,
'endereco_id' => 5,
]
];
和 $item2 (可以有 N 个对象):
[
0 => [
'id'=> 3,
'produto_id' => 4,
'endereco_id' => 5,
]
];
在此示例中,应返回它们之间的不同对象
[
0 => [
'id'=> 2,
'produto_id' => 4,
'endereco_id' => 4,
]
];
我可以在不迭代所有对象的情况下做到这一点来逐一比较属性吗?
解决方案
您可以使用集合差异方法(Laravel Docs)
$diff = $items1->diff($items2);
推荐阅读
- javascript - 检查 URL 的参数并复制到输入中
- javascript - Dynamics retrieveMultipleRecords 异步问题
- ios - 获取第一个序列的领域查询
- dart - Flutter:如何布局类似于 tabbar 的 spaceBetween
- python - 从 3-D numpy 数组中选择元素
- amazon-web-services - AWS Cognito:即使电子邮件/电话未验证,用户也显示确认
- javascript - 如何在角度 5 中单击滚动条时触发事件
- mysql - 在 SQL 中反馈 NULL 值
- flask - eve对子文档的CRUD操作
- javascript - 在 React 中使用 Stripe 和 Axios 链接异步函数调用