首先看用户表的数据结构
然后是项目表的数据结构
下面就是实现代码
//将用户的工种拼接成数组
$user_id = $this->user_id;
$user_work_type = explode(',',M('worker')->where(['user_id'=>$user_id])->getField('work_type_id'));
//前面显示跟用户工种相关的项目
$project_list_before = [];
//后面显示其他工种相关的项目
$project_list_after = [];
//循环项目数据
foreach ($project_list as $k => $v){
//项目的工种转换为数组
$val_work_type = explode(',',$v['work_type_id']);
//用户的工种数组和项目的工种数组取交集
if(array_intersect($user_work_type,$val_work_type)){
$project_list_before[] = $v;
}else{
$project_list_after[] = $v;
}
}
$project_list = array_merge($project_list_before,$project_list_after);