如何用动态形式获得所需的多维数组?

时间:2017-05-23 08:36:12

标签: php html

我希望获得所需的多维数组,如下所示:

array (
  array (abc => 'a', def => 1),
  array (abc => 'b',def => 2)
)

但无法了解如何构建其形式。帮帮我这个家伙。

我尝试按照以下方式构建表单,期望获得上述结果。

<form method="POST" action="test.php">
<textarea name="test[][abc]"></textarea>
<input type="text" name="test[][def]">
<textarea name="test[][abc]"></textarea>
<input type="text" name="test[][def]">
// the 2nd set of textarea and input was dynamically generated by jQuery
<input type="submit">
</form>

如果之前的问题没有完成,请大家道歉。

更新:

在对HTML进行某些修改后,我成功获得了如下数组:

Array
(
    [scope] => Array
        (
            [0] => iusd
            [1] => aishsadf
        )

    [qty] => Array
        (
            [0] => 723186
            [1] => 324
        )

)

如何访问该值并配对?

2 个答案:

答案 0 :(得分:1)

你需要为texteara和textbox对指定相同的索引(键),除非每个数据都像这样推入新的索引

array (
       array (abc => 'a'),
       array (def => 1),
       array (abc => 'b'),
       array (def => 2)
      )

所以表格应该是这样的

<form method="POST" action="test.php">
 <textarea name="test[0][abc]"></textarea>
 <input type="text" name="test[0][def]">
 <textarea name="test[1][abc]"></textarea>
 <input type="text" name="test[1][def]">
 <input type="submit">
</form>

输出

`array (
          array (abc => 'a', def => 1),
          array (abc => 'b',def => 2)
      )`

答案 1 :(得分:0)

通过为输入字段指定名称为[] []来收集多维数组中的值。让帖子请求发布到同一个文件以进行测试。通过创建嵌套的foreach语句来打印输出值。

//filename = post.php
<form action="post.php" method="post">
    <label>field1</label>
    <input type="text" name="array[0][value1]">
    <label>field2</label>
    <input type="text" name="array[1][value2]">

    <input type="submit" value="submit">
 </form>

 <?php

    if(isset($_POST)){
      $array = $_POST['array'];

      foreach($array as $key => $array2){
         foreach($array2 as $key => $value){
            echo $value;
         }       
      }
    }
?>