2

我很好奇是否以及如何将数组的两个值组合在一起而不是覆盖另一个。我将向您展示一个示例:

我有一个表单,它将字段从 CSV 文件映射到数据库。我遇到的问题是,例如有 2 个地址字段需要合并到我的数据库中的 1 个地址字段中。(即:下图)

替代文字

所以当我查看 $_POST[] 数组时,我的问题就来了。它将显示选择了 2 个家庭地址,并使用最后选择的家庭地址导入我的数据库。

如何将信息合并为 1。我希望这可以为您提供有关我的问题的足够信息,如果您需要特定的信息,请告诉我。

我正在处理所有数组,当我发布到我的数据库中时,它需要一个数组来循环,因为我使用反射类。我希望这是有道理的...

在这个问题上,任何光都将不胜感激。干杯,

我很欣赏您的回复,我对您的回复的问题是我无法将我的输入创建为 address[] 因为这将是动态的,我不知道哪个将被设置为地址,哪个将也许设置为“电话”......我希望这张新图片有助于理解。

一些代码(缩短):

<select name="Home_Address_1"> // name is dynamically generated from the CSV headings
  <option>...</option>
</select>
<select name="Home_Address_2"> // name is dynamically generated from the CSV headings
  <option>...</option>
</select>
4

3 回答 3

2

在单个数组中使用两个发布值的示例:

<!-- HTML -->
<input name="address[]" type="text" value="111" />
<input name="address[]" type="text" value="222" />

注意名称属性。

// PHP
$address = $_POST['address'][0] . ' ' . $_POST['address'][1];

echo $address; // prints "111 222"

更新

在您的脚本循环遍历$_POST数组之前,合并字段,如下所示:

$preformat  = $_POST['Home_Address_1'];
$preformat .= ' ' . $_POST['Home_Address_2'];
$preformat .= ' ' . $_POST['Home_Address_3'];
$_POST['Home_Address_3'] = trim($preformat);

然后最后一个家庭地址字段包含所有三个。

于 2010-12-30T04:31:18.533 回答
0

试试 array_merge()...http://php.net/manual/en/function.array-merge.php

于 2010-12-30T04:32:09.833 回答
0

使用 shuffle 尝试 array_merge

$merged = array_merge($arr1,$arr2);
shuffle($merged);

带着敬意

时髦的

于 2010-12-30T04:36:15.397 回答