【问题标题】:Convert html form array to formated json array将 html 表单数组转换为格式化的 json 数组
【发布时间】:2019-06-26 12:10:01
【问题描述】:

我有 html 输入数组。我想收集输入值并返回自定义格式的 json 数组。我遍历表单数组并尝试收集所有内容。

<input type="text" name="item_name[{{ i }}]">
<input type="number" name="item_price[{{ i }}]">

$item_price = $_POST['item_price'];
foreach(array_filter($_POST['item_name']) as $key => $value){

    $data = array('item_name'=>$value,     'item_price'=>$item_price[$key]);

    $data = array_merge($data, $data);
}
echo json_encode($data);

我希望结果完全像这种格式,因此具有所有输入。但是我的结果只给出了一个选项,如果表单要求 3 个项目

{
  "1": {
    "item_name": "GOAT",
    "item_price": "200"
  },
  "2": {
    "item_name": "BEEF",
    "item_price": "150"
  },
  "3": {
    "item_name": "RAT",
    "item_price": "0"
  }
}

【问题讨论】:

  • 你正在不断地覆盖$data
  • 确实如此。您需要一个全局变量来存储最终结果。
  • 作为简写,您可以使用$result[] = array('item_name'=&gt;$value, 'item_price'=&gt;$item_price[$key]);

标签: php arrays


【解决方案1】:

您每次都覆盖$data var。您应该将[] 的数据附加为:

foreach(array_filter($_POST['item_name']) as $key => $value){
    $data[] = array('item_name'=>$value, 'item_price'=>$item_price[$key]);
}
echo json_encode($data);

【讨论】:

    猜你喜欢
    • 2019-11-09
    • 1970-01-01
    • 2018-03-11
    • 1970-01-01
    • 2011-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多