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
相关产品推荐
相关产品推荐

