实现类似于'猜你喜欢'的功能

  1. 首先看用户表的数据结构

    1563876425249991.jpg

  2. 然后是项目表的数据结构

  3. 下面就是实现代码

    //将用户的工种拼接成数组

    $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);

发表评论