使用 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
Best way to list Alphabetical(A-Z) using 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
回答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;

