- ベストアンサー
PHP 九九表 変化版
PHPで九九の変化版を作成しているのですが、下記の表をつくりたいのですが、どうしてもうまくいきません。 どのたかお分かりになる方で間違い点などをお教えて頂けませんでしょうか。宜しくお願い致します。 | 1 2 3 4 5 6 7 8 9 ------------------------------- 1| 1 * * * * * * * * 2| 2 4 * * * * * * * 3| 3 6 9 * * * * * * 4| 4 8 12 16 * * * * * 5| 5 10 15 20 25 * * * * 6| 6 12 18 24 30 36 * * * 7| 7 14 21 28 35 42 49 * * 8| 8 16 24 32 40 48 56 64 * 9| 9 18 27 36 45 54 63 72 81 <?php for($i = 1; $i <=9; $i++){ echo "*"; echo '<tr>'; for($j = 1; $j <=9; $j++) if( $i == 0){ echo "*"; } else { echo "'<td>'. $i * $j.'</td>'; echo '</tr>'; } } ?>
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
エラーがでるようならカッコの数があっているかきちんと数えましょう。 見出しをつけるなら$iや$jは0からはじまらないといけませんね。 ($i==0を指定しているくらいですからお分かりだとおもいますが) フローをよく考えるようにしてください。 ざっと書くと以下のようになります。 <?php echo "<table border>"; for($i = 0; $i <=9; $i++){ echo "<tr>"; for($j = 0; $j <=9; $j++){ if ($i==0 and $j==0) $num=" "; elseif ($i==0) $num=$j; elseif ($j==0) $num=$i; elseif( $i < $j) $num="*"; else $num=$i*$j; echo "<td>".$num."</td>"; } echo "</tr>"; } echo "</table>"; ?>
その他の回答 (2)
- php504
- ベストアンサー率42% (926/2160)
<?php echo "<table>"; for($i = 1; $i <=9; $i++){ //echo "*"; //これはいらないのでは echo '<tr>'; for($j = 1; $j <=9; $j++){ // ここに { を追加 //if( $i == 0){ // $iは1からなのでいらない //echo "*"; //} else { echo '<td>'. $i * $j.'</td>'; // " が余計です }// ここに } を追加 echo '</tr>'; } //} echo "</table>"; ?> でもこれだと全部表示します。
お礼
丁寧に説明して頂きどうもありがとうございます。 さっそく自分の書いたものをもう一度見直させて頂きます。 あいがとうございました。
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
いろんな作り方があると思いますが、何も考えずテキトーに作って動いたソースはこちら。 <table border="1"> <?php for($i = 0; $i <=9; $i++){ echo '<tr>'; if ($i == 0) { echo '<td> </td>'; } else { echo '<td>'.$i.'</td>'; } for($j = 1; $j <=9; $j++) { if ($i == 0) { echo '<td>'.$j.'</td>'; continue; } if( $j > $i){ echo '<td>*</td>'; } else { echo '<td>'. $i * $j.'</td>'; } } echo '</tr>'; } ?> </table>
補足
さっそくのご返答ありがとうございます。 自分でも理解できるようにかみくだいてみようと思います。 ありがとうございました。
お礼
ご丁寧に教えて頂きましてありがとうございます。 またご忠告なども頂き、ありがとうございます。 もっとがんばって勉強しよと思います。