从另一个数组中的数组中获取值,以便稍后将它们存储在数据库中

Get values from array inside another array for later storing them in db

我像这样在前端发送 2 个同名数据

   <h1>First Address</h1>
<input name="address[1][street]" value="Hauptstr" />
<input name="address[1][city]" value="Berlin"  />

<h2>Second Address</h2>
<input name="address[2][street]" value="Wallstreet" />
<input name="address[2][city]" value="New York" />

然后我尝试通过我在 codeigniter 3 中的模型方法将该值存储在我的数据库中

这是我之前用 1 个数据所做的

    $streetinfo['street'] = $this->input->post('street');
    $streetinfo['city'] = $this->input->post('city');
    $newAddress= json_encode($streetinfo);

   $entry = array(
        "id" => "1",
        "address" => $newAddress,
    );
    $result= $this->address->insert_entry($entry);

但是现在我要处理更多的输入数据,我不知道如何处理它 我现在像这样存储数据

$streetinfo = $this->input->post('street');

当我为 $streetinfo 执行 var_dump 时,我得到了这个

array(2) { [1]=> array(2) { ["street"]=> string(1) "1" ["city"]=> string(1) "1" } [2]=> array(2) { ["street"]=> string(1) "3" ["city"]=> string(1) "2" } 

}

然后现在,我不知道如何从这些键中获取每个值并在数据库中进行每次插入

由于您现在将数据作为数组传递,因此您应该使用索引来访问每个变量。首先,将输入数据存储在一个变量中,然后访问不同的索引及其各自的 keys/values.

$data = $this->input->post('address');
$street1 = $data[1]['street'];
$city1   = $data[1]['city'];

$street2 = $data[2]['street'];
$city2   = $data[2]['city'];

如果您随后想将它们保存到数据库中,请确保您的数据库中有所需的 fields/columns 并像往常一样继续保存数据。

这是您要找的吗?