<?php
for ($i = 'a'; $i <= 'z'; $i++)
    echo "$i\n";

这个代码段给出了以下输出(换行符被空格替换):

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 aa ab ac广告ae af ag啊ai aj ak半岛是一个ao美联社aq ar在非盟av aw ax ay az英航bb bc bd是男朋友bg bh bi bj bk提单bm bn bo bp bq br bs bt bu bv bw bx bz ca cb cc cd ce cf cg ch ci cj ck cl厘米cn公司cp cq cr cs ct铜连续波残雪cy cz da db直流dd de df dg dh di dj dk dl dm dn做dp dq博士ds dt dudv dw dxdy dz ea eb ec ed ee ef如呃ei ej ek el em en eo ep eq er es等欧盟ev电子战的前女友……到yz


当前回答

this也可以用:

for ($i = 'a'; $i <= 'z'; $i=chr(ord($i)+1))
    echo "$i\n";

其他回答

this也可以用:

for ($i = 'a'; $i <= 'z'; $i=chr(ord($i)+1))
    echo "$i\n";

其他答案解释了所发布代码的观察行为。这里有一种方法来做你想要的(而且它是更干净的代码,我觉得):

foreach (range('a', 'z') as $i)
    echo "$i\n";

对于ShreevatsaR关于range函数的评论/问题:是的,它产生了“右端点”,即传递给函数的值都在range内。为了说明,上面代码的输出是:

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
<?php

$i = 'a';
do {
echo ($j=$i++),"\r\n";
} while (ord($j) < ord($i));

?>

试试这段代码。我想这段代码会对你有帮助。

$alphas = range('A', 'Z');
foreach($alphas as $value){
    echo $value."<br>";
}

按顺序显示26个字母。

也许这个代码可以工作。这很容易理解:

<?php
$ascii_val = ord("a");
for($i=$ascii_val;$i<$ascii_val+26;$i++){
echo chr($i)."\n";
}
?>

26是字母表中字母的总数。