<?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までの部分は非表示にしてやれば良いような気もしますが、どのように実現すればよいかわかりません。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/10/02 16:26:05
  • 終了:2006/10/09 16:30:03

回答(4件)

id:imo758 No.1

imo758回答回数121ベストアンサー獲得回数192006/10/02 16:39:06

ポイント23pt

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++;

}


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

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

id:namiheikun No.2

namiheikun回答回数75ベストアンサー獲得回数62006/10/02 16:52:24

ポイント23pt

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

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

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>";

?>

id:Mook No.3

Mook回答回数1312ベストアンサー獲得回数3912006/10/02 17:09:19

ポイント22pt

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>
id:b-wind No.4

b-wind回答回数3344ベストアンサー獲得回数4402006/10/02 17:15:19

ポイント22pt
<?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

id:silverspring

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

2006/10/02 17:23:49

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません