You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CodeIgniter中使用update_batch时如何在数组内实现多条件判断?

批量更新学生成绩时的多条件赋值解决方案

针对批量更新中equiv字段的多条件需求,替换原三元运算符并避免错误赋值的修改方案如下:

修改后的代码

public function updateAll(){
    $data = $this->input->post();
    $batch = [];
    
    for($i = 0; $i < count($data['studentID']); $i++){
        $grade = $data['grade'][$i];
        $updateData = [
            'studentID' => $data['studentID'][$i],
            'grade' => $grade
        ];
        
        // 多条件判断设置equiv值
        if($grade == 65){
            $updateData['equiv'] = 5;
        } elseif($grade == 70){ // 可根据实际需求添加更多else if分支
            $updateData['equiv'] = 6;
        } elseif($grade == 80){
            $updateData['equiv'] = 8;
        }
        // 不满足任何条件时,不添加equiv字段,避免覆盖原有值
        
        $batch[] = $updateData;
    }

    return $this->db->update_batch('tbl_college_grades', $batch, 'studentID');
}

关键修改点

  • 用if-elseif结构替代三元运算符,支持任意数量的条件分支,逻辑更清晰
  • 仅当满足对应条件时,才将equiv字段加入更新数组;不满足条件时不包含该字段,这样update_batch不会修改原有equiv值,彻底避免错误设为0的问题
  • 代码结构更易维护,后续新增条件只需添加新的elseif分支即可

内容的提问来源于stack exchange,提问作者Coder Codes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 22:36:31