0

複数の選択ドロップダウンがあるフォームがあります。それぞれに番号を付けました。

問題
結果に対してforeachループを実行すると、選択した値を取得できますがキーを取得できませんか?必要に応じて、1ではなく0で始まります。

HTML:

<select name="1">
    <option value="1">Admin</option>
    <option value="2">Moderator</option>
    <option value="3" selected="selected">User</option>
    <option value="4">More</option>
</select>

<select name="2">
    <option value="1" selected="selected">Admin</option>
    <option value="2">Moderator</option>
    <option value="3">User</option>
    <option value="4">More</option>
</select>

<select name="3">
    <option value="1" selected="selected">Admin</option>
    <option value="2">Moderator</option>
    <option value="3">User</option>
    <option value="4">More</option>
</select>

フォーム送信(var_dump):

array(4) {
  [0]=>
  string(1) "3"
  [1]=>
  string(1) "1"
  [2]=>
  string(1) "1"
}

PHP

$arr = $form_array;
foreach( $form_array as $key => $value )
{
   echo "The key is: $key <br>";
   echo "The value is: $value <br>";
}
4

2 に答える 2

0

これは、配列が数値的にインデックス化されているためです。キーは確か0に ,で1あり2はそれぞれ3,1です1

PHP の配列について詳しくは、こちらをご覧ください。

あなたのコメントから、必要なのはオプションの配列であり、現在の配列と照合できるようにキーが付けられているようです。

array(1 => 'Admin',
  2 => 'Moderator',
  3 => 'User',
  4 => 'More');
于 2012-12-31T04:14:30.197 に答える
0

この動作を再現できません。$_POST の var_dump を実行すると、次のようになります。

array(3) {
  [1]=>
  string(1) "3"
  [2]=>
  string(1) "1"
  [3]=>
  string(1) "1"
}

$_POST を var_dumping しても 0 ベースのキーを取得している場合は、バージョン固有の PHP の異常である必要があり、代わりに文字列キー ("value1"、"value2"、"value3" など) を使用することをお勧めします。別の配列を var_dumping している場合、配列を再インデックス化しているのは、おそらく表示されていないコードです。

于 2012-12-31T04:32:24.360 に答える