人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

上のプログラムは1から100までを10*10の表で表示させるプログラムです。このプログラムを改造して、1のスタート位置を1行目の9つ目の位置からスタートさせたいとします。つまり、上のプログラムで9のデータが入っている箇所をスタート位置として、1から91まで表示させたいとします。

この時、左端に表示される数字は赤で表示させ、右端に表示させる数字は黄色で表示させ、その真ん中の数字は黒で表示させたいです。このような事を実現させるプログラムはどのようになるでしょうか?上のプログラムは$xを-8からはじめて、-8から0までの部分は非表示にしてやれば良いような気もしますが、どのように実現すればよいかわかりません。

●質問者: silverspring
●カテゴリ:コンピュータ インターネット
✍キーワード:PHP print スタート データ プログラム
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● imo758
●23ポイント

http://google.com/ URLはダミー


<?php

print ”TR><TD COLSPAN=”8”></TD><TD>1</TD><TD COLOR=”YELLOW”>2</TD>”;

$x = 3;

for($i=2;$i<=10;$i++){

print ”<TR><TD COLOR=\”RED\”>$x</TD>”;

$x++;

for($j=2;$j<=9;$j++){

print ”<TD>$x</TD>”;

$x++;

}

print ”print ”<TD COLOR=”YELLOW”>$x</TD></TR>”;

$x++;

}


ただチェックはして無いので、豪快に間違えているかもしれません。それとプログラム表記がはてなの記法にひっかかったりするかも。

#あと、かなり行儀悪いかも


2 ● namiheikun
●23ポイント

昔に作ったカレンダーの応用ですが、、、

急いで作ったので結構汚いソースになりました(^^;;;

http://www.namihei.jp/~namihei/test/test1.php

で動いてるのが確認できます。

<?php

$st = 9;

$cnt = 1;

$hide = true;

$x = 1;

print"<table border=1>";

for($i=1;$i<=10;$i++){

 print "<TR>";

 for($j=1;$j<=10;$j++){

  if ($cnt >= $st) {

   $hide = false;

  }

  if ($x > 91) {

   $hide = true;

  }

  if (!$hide) {

   if ($cnt == 1) {

    print "<TD><'red'>$x</font></TD>";

   } elseif ($cnt == 10) {

    print "<TD><font color='yellow'>$x</font></TD>";

   } else {

    print "<TD><font color='black'>$x</font></TD>";

   }

   $x++;

  } else {

   print "<td></td>";

  }

  $cnt++;

  if ($cnt > 10) {

   $cnt = 1;

  }

 }

 print "</TR>";

}

print"</table>";

?>


3 ● Mook
●22ポイント

switch 文を使用して列を判断するようにしました。

<HTML>
<HEADER></HEADER>
<BODY BGCOLOR="#C0C0C0">
 <CENTER>
 <TABLE BORDER="1">
<?php
 $x = -8;
 for($i=1;$i<=10;$i++){
 print " <TR>";
 for($j=1;$j<=10;$j++){
 if ( $x <= 0 ) {
 print "<TD>&nbsp;</TD>";
 } else {
 switch( $j ) {
 case 1 : // 1列目の表示
 print "<TD><FONT COLOR=\"YELLOW\">$x</FONT></TD>";
 break;
 case 10 : // 10列目の表示
 print "<TD><FONT COLOR=\"RED\">$x</FONT></TD>";
 break;
 default : // その他の列の表示
 print "<TD>$x</TD>";
 break;
 }
 }
 $x++;
 }
 print "</TR>\n";
 }
?>
 </TABLE>
 </CENTER>
</BODY>
</HTML>

4 ● b-wind
●22ポイント
<?php
 $x = -8;
 for($i=1;$i<=10;$i++){
 print "<TR>";
 for($j=1;$j<=10;$j++){
 if ( $i < 1 ) {
 print "<TD><BR></TD>";
 }elseif ( $i == 1 ) {
 print "<TD><FONT COLOR='red'>$x</FONT></TD>";
 }elseif ( $i == 10 ) {
 print "<TD><FONT COLOR='yellow'>$x</FONT></TD>";
 }else{
 print "<TD>$x</TD>";
 }
 $x++;
 }
 print "</TR>";
 }
?>

http://q.hatena.ne.jp/1159773963

◎質問者からの返答

皆様ありがとうございます。さっそく動くかどうか試してみたいと思います!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ