2010-11-18 8 views
1

ここでは非常に簡単なSudoku like HTML tableです。PHPで "Sudoku like" HTMLテーブルを生成

私が望むのは、次の点を考慮してPHPでこれを生成することです。

各セルは、この(または類似)のようになります。

<!-- Position "a1" --> 

<?php 
if ($a1_pos_txt !== TRUE){ 

    echo "<td>" . $numbers["a1_pos"] . "</td>"; 

}else{ 

?> 

<td><input type="text" name="a1_post" size="1" maxlength="1" /></td> 

<?php 
} 
?> 

これは明らかに「A1」セルです。

「c4」と「f9」は、THISのように表示されます。

したがって、PHPによって生成されるテーブルは、すべての行に対してTHISのように表示されます。

私が言ったように、このコードをコピー&ペーストしてa1をa2に81回置き換えたいのではなく、彼のテーブルと変数をPHPで動的に生成します。

私が提供できるすべてのコードでできるだけ明確にしようとしましたが、説明が必要かどうか尋ねてください!!!

注:変数で安っぽいの選択肢($a1_pos_txt$a1_posa1_post)優しい無ヴェール:)

答えて

3

これはそれを行う必要があります。

$lit = range('A', 'J'); 
echo '<table border="1">'; 
for($y = 0; $y < 9; $y++) { 
    echo '<tr>'; 
    for($x = 0; $x < 9; $x++) { 
     $block = floor($x/3) + floor($y/3) * 3; 
     $cell = ($x % 3 + 1) + ($y % 3) * 3; 
     echo '<td>'.$lit[$block].$cell.'</td>'; 
    } 
    echo '</tr>'; 
} 
echo '</table>'; 

出力:

A1 A2 A3 B1 B2 B3 C1 C2 C3 
A4 A5 A6 B4 B5 B6 C4 C5 C6 
A7 A8 A9 B7 B8 B9 C7 C8 C9 
D1 D2 D3 E1 E2 E3 F1 F2 F3 
D4 D5 D6 E4 E5 E6 F4 F5 F6 
D7 D8 D9 E7 E8 E9 F7 F8 F9 
G1 G2 G3 H1 H2 H3 I1 I2 I3 
G4 G5 G6 H4 H5 H6 I4 I5 I6 
G7 G8 G9 H7 H8 H9 I7 I8 I9 

は、おそらく少しダウン簡素化することができますが、あなたが必要なものを与える必要があります。 $blockは現在の3x3グリッド、$cellはそのグリッド内のセル番号です。

EDIT

私はあなたの例を確認し、これはあなたが欲しいものではないかもしれません。どうやら、最初の行にはAを、3番目のブロックではなく2番目のBにBを欲しいと思っています。ここではあなたがそれを行うことができます方法は次のとおりです。

echo '<table border="1">'; 
foreach(range('A', 'J') as $y) { 
    echo '<tr>'; 
    for($x = 1; $x <= 9; $x++) { 
     echo '<td>'.$y.$x.'</td>'; 
    } 
    echo '</tr>'; 
} 
echo '</table>'; 

出力:

A1 A2 A3 A4 A5 A6 A7 A8 A9 
B1 B2 B3 B4 B5 B6 B7 B8 B9 
C1 C2 C3 C4 C5 C6 C7 C8 C9 
D1 D2 D3 D4 D5 D6 D7 D8 D9 
E1 E2 E3 E4 E5 E6 E7 E8 E9 
F1 F2 F3 F4 F5 F6 F7 F8 F9 
G1 G2 G3 G4 G5 G6 G7 G8 G9 
H1 H2 H3 H4 H5 H6 H7 H8 H9 
I1 I2 I3 I4 I5 I6 I7 I8 I9 
J1 J2 J3 J4 J5 J6 J7 J8 J9 
+0

WOWは本当に美しく見えますが、私は間違いなくそれを行こうと思います!!ありがとう!!! – Trufa

+0

更新をお寄せいただきありがとうございます。ありがとうございました!! – Trufa

+0

これは、私が実際に生成したかったのは、 "a1" "b2"の例ではないということだけです。私はこのケースのコードを修正しています。 – Trufa

0

PHPは、アレイ(またはマトリックス)の配列をサポートして申し訳ありません。 0から8までの配列を作成し、あなたの9x9の行列が構築されると、各値も0から8

に配列する必要があります - あなたは答えて真$answers[1][3] = true

にそれらを設定することにしたい値を見つけ出します

次に2つのfor-loopsを作成し、テーブル全体を印刷します。あなたのoutter forループは<tr>タグも印刷する必要があります。

+0

[OK]をおかげで、私はあなたが何を意味あなたのアプローチが、 - 私はわからない得ると思う:「あなたがしたい値を見つけ出します答えてください "申し訳ありません、ありがとう! – Trufa

関連する問題