【问题标题】:for loop from A - Z with PHP [duplicate]使用PHP从A-Z进行for循环[重复]
【发布时间】:2014-03-26 13:32:29
【问题描述】:

如果它来自 A-Y,我可以完美地制作表格,但如果我将其更改为“Z”,它将不再工作。

有人知道这个问题吗?

<table border="1">
<?php

    for($row=1; $row<=22; $row++){
        echo "<tr>";
        for($column="A"; $column <= "Y"; $column++){
            echo "<td> $row $column </td>";
        }   
        echo "</tr>";
    }
?>
</table>

【问题讨论】:

    标签: php for-loop


    【解决方案1】:

    你可以试试:

    <table border="1">
    <?php
       for ($row=1; $row <= 22; $row++){
          echo "<tr>";
          foreach (range('A', 'Z') as $column){
             echo "<td> $row $column </td>";
          }   
          echo "</tr>";
       }
    ?>
    </table>
    

    【讨论】:

    • 不应该是for而不是foreach吗?
    【解决方案2】:
    for($char = ord('a'); $row <= ord('z'); ++$char);
    // chr($char) returns it to its character state
    

    ord() 返回字符的代码并使其成为数字。 chr() 还原它们。让for 变得简单。

    【讨论】:

      【解决方案3】:

      如果您不想使用range() 而是使用for(如您的原始代码中所示),这应该可以:

      <table border="1">
      <?php
      
          for($row=1; $row<=22; $row++){
              echo "<tr>";
              for ($column='A'; $column!='AA'; $column++){ 
                  echo "<td> $row $column </td>";
              }   
              echo "</tr>";
          }
      ?>
      </table>
      

      【讨论】:

        【解决方案4】:

        问题是

        for($column="A"; $column <= "Y"; $column++){
        

        你要求它循环,只要它是

        for($column="A"; $column <= "Z"; $column++){
        

        但正如所指出的 range() 在这种情况下会很好地工作。

        【讨论】:

        • 很遗憾,&lt;= "Z" 不起作用。一种解决方法是检查$column != "AA" 是否为AAZ 之后的下一个值
        • $column1="a"; for($column=1; $column $column1 "; $column1++; }
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-01-06
        • 1970-01-01
        • 2018-07-15
        • 2014-11-22
        • 1970-01-01
        • 1970-01-01
        • 2018-01-01
        相关资源
        最近更新 更多