交集问题



首先我说下增加,增加的时候是一张一张的增加的,增加一张照片时候可以选择班级的学生,比如说班级有20个人,但是我照片里面只拍了2个人,那我就选择两个人,现在的需求是这样的,前端可以传过来很多张图片,比如说传过来5张图片,下面的姓名是某个班级下面所有的学生,比如这传过来的五张图片增加的时候都有萌萌这个学生,那么显示效果就和设计图的萌萌那种效果,那如果前端传过来的照片有5张,那你只有其中的 一张或者某些张,那么就是打勾的,类似于半选中,那如果你一张都没有,那你就是不选,这个要怎么做? 


 $info = $this->request->input("file"); //传过来的照片id
        $info = array(1, 2, 3, 4);
        //根据照片id获得下面的学生
        $childIdArr = [];
        foreach ($info as $v) {
            $childIdArr[] = CourseRecordChildModel::getChildIdByCourseRecordId($v);
        }
        $intersectArr = [];
        //求交集
        foreach ($childIdArr as $key => $value) {
            if ($key == 0) {
                $valueArr = $value;
            }
            //求出交集
            $intersectArr = array_intersect($valueArr, $value);
        }
        //求差集
        foreach ($childIdArr as $ck => $cv) {
            foreach ($cv as $item) {
                $childIdArrOne[] = $item;
            }
        }
        //求差集
        $diffArr = array_diff($childIdArrOne, $intersectArr);
        //获得班级所有的学生信息
        $childInfo = CourseRecordModel::getChildInfoByClassId();
        //把对象转为数组
        if (!empty($childInfo)) {
            foreach ($childInfo as &$chindvalue) {
                //把对象转数组
                $chindvalue = get_object_vars($chindvalue);
            }
        } else {
            $childInfo = [];
        }
        foreach ($childInfo as &$childInfoValue) {
            $childInfoValue['status'] = 0;
            foreach ($intersectArr as $intersectValue) {
                if ($intersectValue == $childInfoValue['child_id']) {
                    $childInfoValue['status'] = 2;
                }
            }
            foreach($diffArr as $diffValue){
                if ($diffValue == $childInfoValue['child_id']) {
                    $childInfoValue['status'] = 1;
                }
            }
        }


        return view("courseeecord/update_course_record_page",['childInfo'=>$childInfo]);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值