【问题标题】:Best way to list Alphabetical(A-Z) using PHP使用 PHP 列出字母(A-Z)的最佳方法
【发布时间】:2020-08-14 15:14:16
【问题描述】:

我需要打印/列出按字母顺序排列的 (A-Z) 字符来管理 Excel 单元格。有没有按字母顺序列出的 PHP 函数?

我需要结果

A1
B1
C1
D1
...
...

A
B
C
...
...

这可能吗?

【问题讨论】:

    标签: php


    【解决方案1】:

    你可以这样做:

    foreach (range('A', 'Z') as $char) {
        echo $char . "\n";
    }
    

    或者:

    for ($char = 'A'; $char <= 'Z'; $char++) {
        echo $char . "\n";
    }
    

    【讨论】:

    • @VeckHsiao 只需使用隔行循环。
    • @VeckHsiao 看看这个答案:stackoverflow.com/a/13672617/1990745
    • 第二种形式在 PHP 7.3 中不起作用,可能在 PHP 7.x 中也不起作用。
    【解决方案2】:

    range() 自 PHP 4.1 起支持字母,所以你可以这样做:

    $azRange = range('A', 'Z');
    foreach ($azRange as $letter)
    {
      print("$letter\n");
    }
    

    【讨论】:

      【解决方案3】:

      您也可以这样做:此处使用 ASCII 范围。

      for($i = 65 ; $i<=90; $i++)
      {
        echo chr($i);
      }
      

      【讨论】:

        【解决方案4】:

        我认为你应该使用range function

        $a=range("A","Z");
        foreach($a as $char)
            echo $char."\n";
        

        【讨论】:

          【解决方案5】:

          这个:

          $range = range("A", "Z");
          for ($i=1; i<=100; i++) {
              foreach ($range as $letter) {
                print("$letter$i\n");
              }
          }
          

          将打印所有组合:
          A1
          B1
          C1
          ... ...
          ... ...
          V100
          W100
          Z100

          根据您的需要修改范围。

          【讨论】:

            【解决方案6】:

            这是我使用 P.H.P 代码编写的 HTML 代码,它运行良好

            for($i = 'a' ; $i <= 'z' ; $i++){
            echo $i. "<br />"; }
            

            【讨论】:

            • 信不信由你,这实际上对我有用,因为我需要像您在这里所做的那样将字母增加 1。谢谢!
            【解决方案7】:

            我做了一个常数时间函数如下

            此函数给出数字索引的字母表示

            public static $alpha = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];
            
            public static function getColName($index){
              $index--;
              $nAlphabets = 26;
              $f = floor($index/pow($nAlphabets,0)) % $nAlphabets;
              $s = (floor($index/pow($nAlphabets,1)) % $nAlphabets)-1;
              $t = (floor($index/pow($nAlphabets,2)) % $nAlphabets)-1;
            
              $f = $f < 0 ? '' : self::$alpha[$f];
              $s = $s < 0 ? '' : self::$alpha[$s];
              $t = $t < 0 ? '' : self::$alpha[$t];
            
              return trim("{$t}{$s}{$f}");
            
            }
            

            现在,如果您想使用它,请创建一个范围。您可以在循环中调用此函数,将您的值推送到数组中。

            在大多数情况下,我们需要表示而不是范围,这个函数可以正常工作。

            如何使用

            只需将这些静态函数封装在一个类中并用作

            className::getColName(47);
            

            在我的例子中创建一个范围是浪费内存。

            【讨论】:

            • 但这并不是浪费处理器。如果它有一个让我无法理解的技术优点,它会带来不可读的缺陷,更重要的是,它具有不符合主题设定的要求的不便。除非有对应于空字符串或两个字母组合的 excel 单元格。但是那些有两个字母的也需要一个数字来表示行。
            【解决方案8】:

            此代码满足您的要求....

            <?php 
                    $x= 'A';
                        for($i=0;$i<26;$i++)
                        {
                            echo $x."<br/>";//generates A,B,C,D...Z
                            $x++;
                            if($i == 25)
                            {
                                $x = 'A';
                                $y = '1';
                                for($j=0;$j<26;$j++)
                                {
                                    echo $x.$y."<br />";//generates A1,B1...Z1
                                    $x++;
                                    if($j == 25)
                                    { 
                                        $x = 'A';
                                        $y++;
                                        for($k=0;$k<26;$k++)
                                        {
                                           echo $x.$y."<br />";//generates A2,B2....Z2
                                           $x++; 
                                        }
                                    }
                                }
                            }
                        }
                    ?>
            

            【讨论】:

              【解决方案9】:
              $len = 0;
              for ($char = 'A'; $char <= 'Z'; $char++) {
                  $len++;
                  if ($len == 26) {
                      break;
                  }
                  echo $char;
              }
              

              【讨论】:

              【解决方案10】:

              如果您正在寻找一套全面的 Excel 功能,请查看PHPExcel,它提供了许多用于操作单元格地址和范围以及读取/写入 Excel 和各种其他电子表格文件的方法格式

              【讨论】:

                【解决方案11】:

                此代码用于显示 A、B、...、ZY、ZZ。

                function print_char($end_no=90, $start_no=65, $prefix_no=0)
                { $vasant='';
                    if($prefix_no==0)
                    {
                        for($set=$start_no; $set<=$end_no; $set++)
                        {
                            $vasant.=(chr($prefix_no).chr($set)).', ';
                        }
                    }
                    else
                    {
                        for($set=$start_no; $set<=90; $set++)
                        {
                            $vasant.=(chr($set)).', ';
                        }
                        for($pre_loop=65; $pre_loop<=$prefix_no; $pre_loop++)
                        {
                            for($set=$start_no; $set<=90; $set++)
                            {
                                if($set>=$end_no && $pre_loop==$prefix_no)
                                {
                                    $vasant.=(chr($pre_loop).chr($set)).'. ';
                                    break;
                                }
                                else
                                {
                                    $vasant.=(chr($pre_loop).chr($set)).', ';
                                }
                            }
                        }
                    }
                    return $vasant;
                }
                
                
                $show=print_char(90,65,90);
                echo $show;
                

                【讨论】:

                  猜你喜欢
                  • 2010-12-16
                  • 2012-02-23
                  • 1970-01-01
                  • 2012-04-10
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2016-04-25
                  相关资源
                  最近更新 更多