php中多图上传采用数组差集处理(array_diff,array_map)

            //删除旧有的图片
            //新增数组
            $arr2=array();
            //原有数组
            $old_pics = ReportPic::find()->where(['report_id' => $id])->asArray()->all();
            $arr1=array_map(function($num){return  $num['path'];},$old_pics);
            $arr1_diff = array_diff($arr1, $arr2);
            $picc = ReportPic::deleteAll(['in','path',$arr1_diff]);
            //增加新增的图片
            $arr2_diff = array_diff($arr2, $arr1);
            foreach ($arr2_diff as $k => $v) {
                $report_pic = new ReportPic();
                $report_pic->report_id = $id;
                $report_pic->path = $v;
                $report_pic->save();
            }

猜你喜欢

转载自www.cnblogs.com/huay/p/10826683.html
今日推荐