通过 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
数组上的后处理循环,使你的代码更精简,更简洁。