プロが教える店舗&オフィスのセキュリティ対策術

表を数字1から100まで10行*10行作りたいと思っています。1~10までい
ったら次の行、11~20までいったら次の行というように作成したいとおもっ
ています。

for($x=1;$x<=10;$x++){
print "<TR>";
for($i=1;$i<=10;$i++){
print "<TD>$i</TD>";
}
print "</TR>";

と書くと10行*10行の表は作れるのですが、1~10までのものが10行できてし
まいます。これを1~100までの数字を10行*10行にどのようにすればよいで
しょうか?

A 回答 (4件)

内側のループは、実行されるたびに「状態」が違う必要がありますよね?


1回目: 1~10
2回目: 11~20
: :
と、いうことは、内ループの外の情報を持ってこないといけません。
そして、その「状態」は、外ループのカウンタ$xに依存しています。

と、言うわけで、回答は、No1さんのとおりでどうでしょうか?
外ループの情報$xを用いて、10の位を内ループに持ってくるのです。
    • good
    • 0

#1でも#2でも良さそうです。


せっかくなので別の書き方も
$i%10 で余りを求めています。

for($i=1;$i<=100;$i++){
 if($i%10 == 1) print "\n<tr>";
 print "<td>{$i}</td>";
 if($i%10 == 0)print "</tr>";
}

//見た目のため、全角文字が入ってます。そのままコピペじゃ動きません。
    • good
    • 0

こんな感じではいかがでしょうか。



for($x = 1; $x <= 100; $x++)
{
$count++;
if("${count}" == "1")
{
print "<tr>";
}
print "<td>$x</td>";
if("${count}" == "10")
{
print "</tr>";
unset("${count}");
}
}

繰り返し回数が1回目と10回目に<tr></tr>をいれ、
10回目の時に$countを初期化します。
うちのサーバでテストしたら無事表示されましたよん。
    • good
    • 0

> print "<TD>$i</TD>";



print "<TD>" . ($x-1)*10+$i . "</TD>";
とすればいかがでしょうか。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!