生成一个";类似数独的;使用PHP的HTML表格

生成一个";类似数独的;使用PHP的HTML表格,php,html,html-table,Php,Html,Html Table,这里有一个非常简单的例子 我想用PHP生成它,考虑以下几点 每个单元格应如下所示(或类似): 很明显,这是“a1”单元 以防万一,“c4”和“f9”应该是这样的 因此,对于所有行,PHP生成的表应该是这样的,以此类推 正如我所说的,我不想复制和粘贴这段代码,用a1替换a2等等81次,我希望他的表和变量用PHP动态生成 我试图用我能提供的所有代码尽可能清楚地表达出来,但请询问您是否需要任何澄清 注意:对于变量中糟糕的选择($a1_pos_txt、$a1_pos和a1_post)没有垂直友好:)

这里有一个非常简单的例子

我想用PHP生成它,考虑以下几点

每个单元格应如下所示(或类似):


很明显,这是“a1”单元

以防万一,“c4”和“f9”应该是这样的

因此,对于所有行,PHP生成的表应该是这样的,以此类推

正如我所说的,我不想复制和粘贴这段代码,用a1替换a2等等81次,我希望他的表和变量用PHP动态生成

我试图用我能提供的所有代码尽可能清楚地表达出来,但请询问您是否需要任何澄清


注意:对于变量中糟糕的选择(
$a1_pos_txt
$a1_pos
a1_post
)没有垂直友好:)

PHP支持数组(或矩阵)数组。创建一个从0到8的数组,每个值也应该是一个从0到8的数组

构建9x9矩阵时-找出需要回答的值,并将其设置为true
$answers[1][3]=true

然后创建2个for循环并打印出整个表。您的outter for循环也必须打印标签。

这应该可以做到:

$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>';
也许可以简化一点,但应该能满足您的需要
$block
是当前3x3网格,
$cell
是该网格中的单元格编号

编辑

我检查了你的例子,这可能不是你想要的。显然,第一排是A,第二排是B,等等,而不是每3x3个街区。以下是如何做到这一点:

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”“b2”示例,特别是我正在为本例修改您的代码,感谢您为我指明了正确的方向。
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
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