来自多行选择器的多维数组的多维数组

时间:2014-09-05 21:23:48

标签: php arrays

我想构建一个包含多个(未知数量)行的表单,并最终将该数据插入到数据库中。但是,我的一个输入字段是多选,这会使数组混乱。

当前(简化)的html代码:

<form name="testform" action="testarray.php" method="post">
    <table>
    <tr>
    <td><label>formdata</label></td>
    <td><select name="formdata[][]" multiple="multiple">
        <option> </option>
        <option value="item1">Item 1</option>
        <option value="item2">Item 2</option>
        <option value="item3">Item 3</option>
    </select></td>
    </tr>
    <tr>
    <td><label>formdata</label></td>
    <td><select name="formdata[][]" multiple="multiple">
        <option> </option>
        <option value="item1">Item 1</option>
        <option value="item2">Item 2</option>
        <option value="item3">Item 3</option>
    </select></td>
    </tr>
    </table>
    <button type="submit" value="submit">Submit</button>
</form>

如果我在第一个输入上选择item2,并选择item2&amp;第二个输入上的item3,然后只需在操作页面print_r($_POST['formdata']);上打印数组,而不是数组如下所示:

Array ( [0] => Array ( [0] => item2 ) [1] => Array ( [0] => item2 ) [2] => Array ( [0] => item3 ) )

我希望它看起来像这样:

Array ( [0] => Array ( [0] => item2 ) [1] => Array ( [0] => item2 [1] => item3))

我错过了什么?

1 个答案:

答案 0 :(得分:0)

这是有效的

<?php
$i=0;
 ?>

<form name="testform" action="testarray.php" method="get">
    <table>
    <tr>
    <td><label>formdata</label></td>
    <td><select name="formdata[<?php echo $i++ ?>][]" multiple="multiple">
        <option> </option>
        <option value="item1">Item 1</option>
        <option value="item2">Item 2</option>
        <option value="item3">Item 3</option>
    </select></td>
    </tr>
    <tr>
    <td><label>formdata</label></td>
    <td><select name="formdata[<?php echo $i++ ?>][]" multiple="multiple">
        <option> </option>
        <option value="item1">Item 1</option>
        <option value="item2">Item 2</option>
        <option value="item3">Item 3</option>
    </select></td>
    </tr>
    </table>
    <button type="submit" value="submit">Submit</button>
</form>