通过 POST 传递数组

通常,提交给 PHP 的 HTML 表单元素会产生单个值。例如:

<pre>
<?php print_r($_POST);?>
</pre>
<form method="post">
    <input type="hidden" name="foo" value="bar"/>
    <button type="submit">Submit</button>
</form>

这导致以下输出:

Array
(
    [foo] => bar
)

但是,可能存在要传递值数组的情况。这可以通过在 HTML 元素的名称中添加类似 PHP 的后缀来完成:

<pre>
<?php print_r($_POST);?>
</pre>
<form method="post">
    <input type="hidden" name="foo[]" value="bar"/>
    <input type="hidden" name="foo[]" value="baz"/>
    <button type="submit">Submit</button>
</form>

这导致以下输出:

Array
(
    [foo] => Array
        (
            [0] => bar
            [1] => baz
        )

)

你还可以将数组索引指定为数字或字符串:

<pre>
<?php print_r($_POST);?>
</pre>
<form method="post">
    <input type="hidden" name="foo[42]" value="bar"/>
    <input type="hidden" name="foo[foo]" value="baz"/>
    <button type="submit">Submit</button>
</form>

返回此输出:

Array
(
    [foo] => Array
        (
            [42] => bar
            [foo] => baz
        )

)

此技术可用于避免 $_POST 数组上的后处理循环,使你的代码更精简,更简洁。