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

PHP CodeIgniter嵌套foreach处理动态字段插入重复问题求助

问题解决:票务数据插入数据库条目数异常

原代码的核心问题是嵌套foreach的逻辑错误:外层遍历每个票种,内层又遍历所有票数,导致每个票种都会和所有票数组合执行插入操作,最终插入条数是票种数量 × 总票数,远超过实际需求。同时内部通过$key2调用$ticket_description和$price的方式,逻辑混乱,极易引发数据不匹配。

修正后的代码逻辑:遍历每个票种,关联对应的票数和价格,根据票数循环插入对应次数的记录,确保每种票的插入条数等于其实际数量:

foreach ($ticket_description as $index => $desc) {
    // 获取当前票种的对应票数与价格
    $ticket_count = $tickets[$index];
    $ticket_price = $price[$index];
    
    // 按票数循环插入记录
    for ($i = 0; $i < $ticket_count; $i++) {
        $tickets_data_array = array(
            "ticket_description" => $desc,
            "price" => $ticket_price
        );
        $this->db->insert('booked_tickets', $tickets_data_array);
    }
}

关键说明

  • 确保$ticket_description、$price、$tickets三个数组的索引是一一对应的(比如索引0对应成人票、成人票价格、成人票数量),否则会出现数据错位。
  • 用for循环替代内层foreach,精准控制每种票的插入次数,最终总插入条数等于各票种数量之和,符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 09:30:16