【问题标题】:PHP Vertical Alphabet Using FOR Cycle使用 FOR 循环的 PHP 垂直字母表
【发布时间】:2015-06-02 17:54:40
【问题描述】:

我正在尝试用 PHP 编写一个脚本,该脚本将生成一个带有垂直字母表的表格。它会简单地回显从 A 到 Z 的字母,当涉及到 Z 时,它将重置并再次从 A 开始。我对此有疑问,因为我只能重复两次,然后所有单元格中都有一些不需要的符号。我正在使用他们的 ASCII html 代码来回显这封信,其中 A 符号是 A,Z 符号是 Z。

这是我到现在为止的代码,谢谢你的帮助。

<!DOCTYPE html>
<html>

<head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
    <title>Vertical alphabet</title>
</head>
<body>
    <form method="post">
        <input type="number" placeholder="COLUMNS" name="cols" />
        <input type="number" placeholder="ROWS" name="rows" />
        <input type="submit" value="Create table" /><br><br>
    </form>

        <?php
            if(isset($_POST['rows']) && isset($_POST['cols'])) {
                $col = $_POST['cols'];
                $row = $_POST['rows'];

                echo ("<table rules='all'>");

                for($i = 1; $i<$row+1; $i++) {
                    echo ("<tr>");
                    for($c = 0; $c<$col; $c++) {
                        $letter_id = 65;
                        $number = ($i + ($c*$row)-1);
                        $letter = $number + $letter_id;
                        if($letter > 90) {
                            $number = $number - 26;
                            $letter = $letter - 26;
                            echo ("<td>". "&#" . $letter. "</td>");
                        } else {
                            echo ("<td>". "&#" . $letter. "</td>");
                        }
                    }
                    echo ("</tr>");
                }
                echo ("</table>");
            }
        ?>
</body>
</html>

【问题讨论】:

  • havent 真的看你的代码,但我的 arrprach 会像 foreach (range('a', 'z') as $letter) {

标签: php for-loop alphabet letter


【解决方案1】:

不确定你想用$number 变量做什么,但这就是这里的问题

$number = 0;

echo ("<table rules='all'>");

for($i = 1; $i<=$row; $i++) {
     echo ("<tr>");
     for($c = 0; $c<$col; $c++) {
          $letter_id = 65;
          $number = $i + ($c*$row);
          $letter = $number + $letter_id;
          while($letter > 90) {
                $letter = $letter - 26;
          }
          echo ("<td>". "&#" . $letter. "</td>");
     }
     echo ("</tr>");
}

echo ("</table>");

更新:

现在垂直,试试这个...

【讨论】:

  • $number 变量正是我想要的,它是垂直编号,你删除了它,所以现在它不是我想要的。是的,它是字母表,但现在是 VERTICAL :/ 但是,谢谢你的帮助
  • 你能帮我做一件事吗?这完全没用,但是如果我想编辑脚本以呼应从 A 到 Z,然后从 Z 到 A,而不是从 A 到 Z 的字母表……你知道我的意思。
  • 是啊,好像挺没用的,不过话说回来,我也不知道你的其他功能是怎么用的……
  • 我得到了这个功能,你的相关问题在哪里,所以我可以发布答案...?
  • 你可以在这里发送 → pilka91@outlook.cz 为了描述它的用途,我学习 IT 和创建网站、PHP 等。老师给我这些“没用”的东西来练习这个,看起来没什么用,但我真的很感谢其他人的代码,所以我可以从中学习,从错误中吸取教训,变得更好:)
【解决方案2】:

因为 $number 总是长大的。
第一个 A-Z,$number 介于 0 到 25 之间,else 情况你去就可以了。
第二个 A-Z,$number 介于 26 和 51 之间,你在 if 情况下,你删除 26 并且你的打印是好的。

下一个 $number 在 52 处,如前所述,您进入 if 情况并尝试打印字母表中的第 27 个字母^^

【讨论】:

  • 是的,我知道错误就在这里,我尝试了很多东西,但仍然没有成功。我知道出了什么问题,但我不知道如何解决它:/
  • 我知道模数,但不知道这对我有什么帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-15
  • 2021-12-27
  • 1970-01-01
  • 2018-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多