如何在foreach内部使用foreach作为动态字段php

问题描述 投票:0回答:1

我将以下动态加载的值保存到数据库

在这里,我需要保存到数据库的是,如果有两张成人票,则数据库中应该有两个条目,如果有3张儿童票,则需要将它们分成三行放在同一个数据库中。

我写的代码如下

foreach ($ticket_description as $key => $value)
            {
                foreach ($tickets as $key2=> $value2) {

                        $tickets_data_array = array(

                            "ticket_description" => $ticket_description[$key2],
                            "price" => $price[$key2],
                        );
                        $this->db->insert('booked_tickets', $tickets_data_array);
                }
            }

我已将 VIP、成人视为“$ticket_description”,门票数量为“$tickets”。问题是我最终有多个条目,而不是上面的 5 个条目。请帮忙在 php 中解决这个问题。我用的是codeigniter。

php codeigniter dynamic-tables
1个回答
0
投票

您的嵌入式循环在逻辑上与外循环不兼容,因为您在外循环中循环所有描述,并在内循环中的所有票证条目上嵌入循环,并将它们全部插入。

例如,如果您有 5 个票证条目和 3 个可能的描述,则您将循环每个描述,然后在每个描述内循环所有 5 个票证,插入所有票证条目的次数与您拥有的可能描述的数量相同,而您想要插入门票条目每一次都具有正确的描述。

因此,将票证循环嵌入到描述循环中是多余且多余的,您需要一个循环:

                foreach ($tickets as $key2=> $value2) {

                        $tickets_data_array = array(

                            "ticket_description" => $ticket_description[$key2],
                            "price" => $price[$key2],
                        );
                        $this->db->insert('booked_tickets', $tickets_data_array);
                }

请注意,您可以借助

$ticket_description
$price
数组获取每件商品的价格和描述。

© www.soinside.com 2019 - 2024. All rights reserved.