tableをループ(foreach文)を使ってつくる

HTMLだけでつくったtable

1月 2月 3月 4月 ・・・

[ソース]

<table>
	<tr>
		<td>1月
		<td>2月
		<td>3月
		<td>4月
		<td>・・・
	</tr>
<tr>
<td>
<select>
	<option>春</option>
	<option>夏</option>
	<option>秋</option>
	<option>冬</option>
</select>
</td>
<td>
<select>
	<option>春</option>
	<option>夏</option>
	<option>秋</option>
	<option>冬</option>
</select>
</td>
</tr>
・・・
・・・
</table>

これではtdとselect~optionを何度も記述することになり、コードが長くなってしまうのでPHPを使う

tdをfor文でループさせつつforeach文でoptionを配列から呼び出したtable

<table>
	<tr>
	<?php for($i = 1 ; $i <= 12; $i++ ) : ?> // 1段目のtdを回すfor
		<td><?php echo $i.'月'; ?></td>
	<?php endfor; ?>
	</tr>
	
	<tr>
	<?php for($i = 1 ; $i <= 12; $i++ ) : ?> // 2段目のtdを回すfor
		<td>
	<select>
	<?php $season = array(  // option内で使う配列を作成
			1 => '春',
			2 => '夏',
			3 => '秋',
			4 => '冬'
			); ?>
								
	<?php foreach($season as $key => $season_name): ?> // optionを配列から取り出すforeach(optionを挟むように配置)
	<option><?php echo $season_name; ?></option>
	<?php endforeach; ?>
	</select>
		</td>
	<?php endfor; ?>
	</tr>	
</table>

何をループさせたいのかによって、何を挟むように配置するのか考える

[実行結果]

1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月

インデックスに戻る