通過 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 陣列上的後處理迴圈,使你的程式碼更精簡,更簡潔。