0

我有一个应用程序,其中有 2 个初始字段:

  1. 姓名
  2. 价格

表格如下所示:

<form>
<input type="hidden" name="type" value="television" />
<label>Name <input type="text" name="name[]" /></label>
<label>Price <input type="text"" name="price[]" /></label>
</form>

目前,用户能够向表单“添加更多”字段,效果很好。例如,如果有人点击添加更多按钮,表单如下所示:

<form>
<input type="hidden" name="type" value="television" />

<label>Name <input type="text" name="name[]" /></label>
<label>Price <input type="text"" name="price[]" /></label>

<label>Name <input type="text" name="name[]" /></label>
<label>Price <input type="text"" name="price[]" /></label>
</form>

然后他们可以添加更多名称/价格。我遇到的问题是我无法将第一个价格字段与名字字段相关联,依此类推,当我将其插入数据库时​​,第四个。我正在使用 ajax 发布数据,这也很好。

目前,当我 var_dump 发布帖子时,数组如下所示:

array(3) {
  ["type"]=>
  string(10) "television"
  ["name"]=>
  array(2) {
    [0]=>
    string(8) "name one"
    [1]=>
    string(8) "name two"
  }
  ["price"]=>
  array(2) {
    [0]=>
    string(9) "price one"
    [1]=>
    string(9) "price two"
  }
}

我需要的是能够合并数组值,使其看起来完全像这样:

array(
    "name" => "name one",
    "price" => "price one",
    "type" => "television"
)

array(
    "name" => "name two",
    "price" => "price two",
    "type" => "television"
)

任何帮助将不胜感激!

4

1 回答 1

2

如果您知道每个name都会有一个,price那么您可以使用key来自任何一个$_POST array variables来创建您的输出。

注意:这不会创建单独的数组,而是将三个组合在一起以便于“可读性”:

$_POST = array(
  "type"=> "television",
  "name"=> array("name one","name two"),
  "price"=> array("price one","price two"),
);

$output = array();
foreach($_POST['name'] as $key=>$name){
    $output[$key]['name'] = $name;
    $output[$key]['price'] = $_POST['price'][$key];
    $output[$key]['type'] = $_POST['type'];
}
echo '<pre>',print_r($output),'</pre>';
于 2013-05-28T23:52:43.590 回答