提交名称为[]的表单后的数组处理

时间:2016-12-07 18:44:52

标签: php jquery

其实我的表格是这样的:

<form>
    <input name="name[]">
    <input name="name[]">
</form>

这很棒,因为使用$(this).serialize()我可以将值转换为数组。

但是今天,我有一排有2个像这样的输入。

<form>
    <input name="name[]">  <input name="firstname[]">
    <input name="name[]">  <input name="firstname[]">
</form>

如何处理最终数组以匹配具有良好值的输入? 例如,我希望name[1]firstname[1]一起使用。

感谢。

1 个答案:

答案 0 :(得分:1)

无论如何,你需要一个多维数组,所以这两个中的一个会给你一个数组:

<input name="data[name][]">  <input name="data[firstname][]">
<input name="data[name][]">  <input name="data[firstname][]">

$_POST数组中的产量:

Array
(
    [data] => Array
        (
            [name] => Array
                (
                    [0] => something
                    [1] => something 2
                )

            [firstnamename] => Array
                (
                    [0] => something else
                    [1] => something else 2
                )
        )
)

或者,您需要手动匹配整数键,因为[]每次都会增加,并且不匹配这两个值:

<input name="data[0][name]">  <input name="data[0][firstname]">
<input name="data[1][name]">  <input name="data[1][firstname]">

$_POST数组中的产量:

Array
(
    [data] => Array
        (
            [0] => Array
                (
                    [name] => something
                    [firstnamename] => something else
                )

            [1] => Array
                (
                    [name] => something 2
                    [firstnamename] => something else 2
                )
        )
)