PHPでは、数値フィールドを使ってフォームフィールドに名前を付けると、$ _POSTオブジェクトの配列として機能します。PHPフォームポスト配列の順序
<form method="post" action="post.php">
<input type="text" name="question[0][name]" />
<input type="text" name="question[0][email]"/>
<input type="text" name="question[0][password]" />
<hr>
<input type="text" name="question[1][name]" />
<input type="text" name="question[1][email]"/>
<input type="text" name="question[1][password]" />
<hr>
<input type="submit" value="Add" />
<hr>
<p><?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
echo json_encode($_POST, JSON_NUMERIC_CHECK);
}
?></p>
</form>
出力
{"question":[{"name":"a","email":"aa","password":"aaa"},{"name":"b","email":"bb","password":"bbb"}]}
フィールドの順序は、名前が繰り返されるたびにゼロから始まり、1だけインクリメントシーケンシャルされていない場合、それらは全て代わりキーとして解釈されます。だから、
<form method="post" action="post.php">
<input type="text" name="question[1][name]" />
<input type="text" name="question[1][email]"/>
<input type="text" name="question[1][password]" />
<hr>
<input type="text" name="question[0][name]" />
<input type="text" name="question[0][email]"/>
<input type="text" name="question[0][password]" />
<hr>
<input type="submit" value="Add" />
<hr>
<p><?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
echo json_encode($_POST, JSON_NUMERIC_CHECK);
}
?></p>
</form>
出力
{"question":{"1":{"name":"a","email":"aa","password":"aaa"},"0":{"name":"b","email":"bb","password":"bbb"}}}
彼らは配列として解釈されるように、ポストキーの配列の順序を無視する$ _POSTを取得する方法はあります
?役に立つかどう
をもう一つの方法は、取得時に$ _POST配列をソートすることです。 –
@ShivaniPatelこれはあなたの例ですか? – frumbert