これが私が理解したことです:
多値フォームフィールドの送信、つまりGET / POST変数を介した配列の送信は、標準が必ずしも明記されていないため、いくつかの異なる方法で実行できます。
複数値フィールドまたは配列を送信する3つの方法は次のとおりです。
?cars[]=Saab&cars[]=Audi
(最良の方法-PHPはこれを配列に読み込みます)
?cars=Saab&cars=Audi
(悪い方法-PHPは最後の値のみを登録します)
?cars=Saab,Audi
(これを試したことはありません)
フォームの例
フォームでは、複数値フィールドは、複数に設定された選択ボックスの形式を取ることができます。
<form>
<select multiple="multiple" name="cars[]">
<option>Volvo</option>
<option>Saab</option>
<option>Mercedes</option>
</select>
</form>
(注:この場合、some_name[]
結果のリクエスト変数がPHPによって配列として登録されるように、選択コントロールに名前を付けることが重要です)
...または同じ名前の複数の非表示フィールドとして:
<input type="hidden" name="cars[]" value="Volvo">
<input type="hidden" name="cars[]" value="Saab">
<input type="hidden" name="cars[]" value="Mercedes">
注:field[]
複数の値にを使用することは、文書化が不十分です。クエリ文字列の多値キーに関するセクション-Wikipediaや、複数選択の入力を扱うW3Cのドキュメントには、そのような記述はありません。
更新
コメンターが指摘したように、これはフレームワーク固有のものです。いくつかの例:
クエリ文字列:
?list_a=1&list_a=2&list_a=3&list_b[]=1&list_b[]=2&list_b[]=3&list_c=1,2,3
レール:
"list_a": "3",
"list_b":[
"1",
"2",
"3"
],
"list_c": "1,2,3"
角度:
"list_a": [
"1",
"2",
"3"
],
"list_b[]": [
"1",
"2",
"3"
],
"list_c": "1,2,3"
(角度論)
node.js、Wordpress、ASP.netの例のコメントを参照してください
順序を維持する:
考慮すべきもう1つの点は、アイテムの順序(つまり、順序付きリストとしての配列)を維持する必要がある場合、値の区切りリストを渡し、それを明示的に変換するオプションが1つしかないことです。あなた自身の配列。