使用 PHP 列出按字母顺序(AZ)的最佳方式

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/2857246/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-25 07:56:07  来源:igfitidea点击:

Best way to list Alphabetical(A-Z) using PHP

php

提问by Prabhu M

can any one please let me know, i need to print/list Alphabetical(A-Z) char to manage Excel cells. Is there any php function to list Alphabetic?

任何人都可以让我知道,我需要打印/列出字母(AZ)字符来管理 Excel 单元格。是否有任何 php 函数可以列出字母顺序?

I need result as

我需要结果

A1
B1
C1
D1
...
...
...

OR

或者

A
B
C
...
...

回答by Alix Axel

You can either do:

你可以这样做:

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

Or:

或者:

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

回答by John Carter

range()supports letters since PHP 4.1, so you can do this:

range()自 PHP 4.1 起支持字母,因此您可以这样做:

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

回答by valar morghulis

You can do it in this way as well: ASCII range used here.

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

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

回答by mck89

I think you should use the range function:

我认为你应该使用range 函数

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

回答by Dom De Felice

This:

这个:

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

will print you all the combinations:
A1
B1
C1
... ...
... ...
V100
W100
Z100

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

Modify the ranges accordingly to your needs.

根据您的需要修改范围。

回答by Dom De Felice

here's my code for HTML using P.H.P code, and it works fine

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

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

回答by Kamal Lama

this code results your requirements....

此代码导致您的要求....

<?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++; 
                            }
                        }
                    }
                }
            }
        ?>

回答by LesterLeeGit

$len = 0;
for ($char = 'A'; $char <= 'Z'; $char++) {
    $len++;
    if ($len == 26) {
        break;
    }
    echo $char;
}

回答by Abhijit Srivastava

I made a constant time function as follows

我做了一个恒定时间函数如下

This function gives the Alphabetic representation of a numeric index

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

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}");

}

Now if you want to use it create a range. you can call this function in a loop pushing your values to an array.

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

As for most of the time, we need the representation rather than a range this function would work just fine.

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

HOW TO USE

如何使用

Just enclose these static functions in a class and use it as

只需将这些静态函数包含在一个类中并将其用作

className::getColName(47);

Making a range in my case was a waste of memory.

在我的情况下制作一个范围是浪费内存。

回答by Vasant Rajput

This code for display A,B,...,ZY,ZZ.

此代码用于显示 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;