こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

配列の変数をループで書き出したい

以下の配列を利用して、

//本籍
$arrHonseki = array("北海道","青森県","岩手県","・・(中略)・・・"鹿児島県","沖縄県","海外");


以下のようにHTMLに展開するのにうまいfor構文とかありませんか。
配列をループさせるというのはforeach構文だったでしょうか?

<select name="Honseki>
  <option value=""> </option>
  <option value="0">北海道</option>
  <option value="1">青森県</option>
  <option value="2">岩手県</option>
        :
        :
  <option value="45">鹿児島県</option>
  <option value="46">沖縄県</option>
  <option value="47">その他海外</option>
</select>

投稿日時 - 2009-05-29 15:34:26

QNo.5000159

暇なときに回答ください

質問者が選んだベストアンサー

print "<select name=\"Honseki\"><br>\n";
print "<option value=\"\"> </option><br>\n";

$ip_1 = $ip_2 = '';

$ip_1 = count($arrHonseki);

for( $ip_2 = '0'; $ip_2 < $ip_1; $ip_2++ ){
print "<option value=\"" . $ip_2 . "\">". $ip_1[$ip_2] . "</option><br>"\n";
}

print "</select>\n";

投稿日時 - 2009-05-29 16:00:24

お礼

Suziさん、お礼遅くなってすみませんでした。
おかげさまでご教示のとおりのものを実装できました。

最初、このままうまく動かなくて
$ip_1[$ip_2]を$arrHonseki[$ip_2]に修正したら、うまくいきました。

ご回答まことにありがとうございました。
大変勉強になりました。

投稿日時 - 2009-06-08 09:10:04

ANo.1

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

こんな感じで・・・
arrayでやるときはキーも指定したほうがいいですよ。

<?
$arrHonseki = array(0=>"北海道",1=>"青森県",2=>"岩手県",45=>"鹿児島県",46=>"沖縄県",47=>"海外");
$str="";
foreach($arrHonseki as $key=>$val){
$str.="<option value=\"{$key}\">{$val}</option>\n";
}
$str="<select name=\"Honseki\">\n<option value=\"\"> </option>\n{$str}</select>";
print $str;
?>

投稿日時 - 2009-05-29 16:04:05

お礼

yambejpさん、お礼遅くなってすみませんでした。

>arrayでやるときはキーも指定したほうがいいですよ。
こちらは、知りませんでした。以後、注意します。

本題の方も、うまくいきました。大変ありがとうございました。

投稿日時 - 2009-06-08 09:11:52

あなたにオススメの質問