php - 在 Laravel 中使用 foreach:删除相同的值
问题描述
我找到了删除结果中重复值的方法,但它不能正常工作。如何解决?
我有下一个代码:
public function getListPositionByApplication($app_id){
// $app_id = \Request::input('app_id');
$list = SparePartApplicationPositionProvider::where('app_id',$app_id)->with(['provider','application_position'])->orderBy('apos_id')
->get();
$aa=0;
foreach ($list as $value) {
if($value->apos_id==$aa){
$value->application_position->name_detail='----';
}
$aa = $value->apos_id;
Log::info($value->apos_id);
}
return $list;
}
Log::info 给出下一个信息:26,26,26,26,26,26,27,27,27,27,27,27,28 但 $value->application_position->name_detail 有 '----' in除最后一个值外的所有情况
解决方案
@Hussein 是对的,按公共列分组,不要做 foreach。让 Eloquent DB 完成繁重的工作。请注意包含第二个表的回调。
$list = SparePartApplicationPositionProvider::where('app_id',$app_id)
->with(['provider','application_position' => function ($query){
$query->groupBy('name_detail');
}])
->orderBy('apos_id')
->get();
推荐阅读
- c# - 显示数据库中的图片
- spring-boot - 使用 Spring Boot liquibase 测试不适用于多个数据源
- reactjs - 将数据推送到 Firebase 的问题
- laravel - laravel 验证检查多维数组
- python - 如何根据 Pandas DataFrame 中其他列的值创建新列
- c++ - 抛出异常:读取访问冲突。**this** 是 nullptr。发生了
- sql - 返回 BAQ 中的最新记录
- java - 电报机器人。SenDocument pdf
- php - PHP:从数组中删除唯一值
- sql-server - 在查询中运行注释时出现错误 ExecuteReader:CommandText