//删除旧有的图片 //新增数组 $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(); }