PHP表映射

4

我想创建一个游戏,需要使用PHP来创建地图。我想以正确的方式创建100个表格框,但是我无法让它起作用...

$field = 100;
echo "<table border='3px' dir='ltr'>";
for ($row=0; $row < 10 ; $row++) {
  echo "<tr>";
  for ($column=0; $column < 10; $column++) {
    echo "<td>";
      echo $field;
      $field--;
    echo "</td>";
  }
  echo "</tr>";
}
 echo "</table>";
 ?>

这给出了这个表格: Table Image 但我需要像这样的表格: What I need

你尝试过自己解决这个问题吗? - Nico Haase
1个回答

2
如果不是必须使用for循环,我会使用数组,这样你就有一个可操作的集合而不需要进行计算,然后只需要反转奇数行即可,如下所示:
$rows = array_reverse(array_chunk(range(1, 100), 10));

echo "<table>\n";
foreach ($rows as $level => $row) {
  if (($level-1) % 2) {
    $row = array_reverse($row);
  }
  echo "\t<tr>\n";
  foreach ($row as $value) {
    echo "\t\t<td>$value</td>\n"; 
  }
  echo "\t</tr>\n";
}
echo "<table>\n";

https://3v4l.org/204eh


3
很好的回答。我唯一的建议是将分块值(10)设置为总值的平方根,以便棋盘可以为任何正方形大小(144、256等)array_chunk(range(1, 100), sqrt($field)); - Martin
1
是的,就像这个:https://3v4l.org/jBnQ9?虽然它超出了问题的范围,所以不会改变它。 - Lawrence Cherone

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接