php循环a-z,php循环输出a-z字母,用于城市列表排序等。

本文介绍了在PHP中如何正确地循环输出字母a到z,纠正了使用常规循环可能导致的错误,并提供了四种有效的方法,包括使用ASCII值、ord()和chr()函数以及range()函数。这些方法适用于按字母顺序排列城市列表等场景。

我们在使用php语言时,经常会遇到循环输出,例如for、while等等,而这里一般是用做数字循环,例如1-10等。但有时我们也会用到字母的输出,例如从a-z的输出,用于行业站排序城市名字等。这个应该怎么做呢,下面听cms大学小编细细讲来。

一、错误的方法:

首先按照我们对php的理解,循环语句应该这样写。

折叠展开PHP 代码

for($i='a';$i<='z';$i++){

echo"$i\n";

}

输出的结果是这样的:

折叠展开PHP 代码

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 ad ae af ag ah ai aj ak al am an ao ap aq arasat au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk bl bm bn bo bp bq br bs bt bu bv bw bx by bz ca cb cc cd ce cf cg ch ci cj ck cl cm cn co cp cq cr cs ct cu cv cw cx cy cz da db dc dd de df dg dh di dj dk dl dm dndodp dq dr ds dt du dv dw dx dy dz ea eb ec ed ee ef eg eh ei ej ek el em en eo ep eq er es et eu ev ew ex...  yz

而我们想要的其实是这样的:

折叠展开PHP 代码

a

b

c

d

e

.

.

z

错误分析:

这有点无语了,其实解决起来也很简单,这里涉及到一个php的特性。

请看php官方链接:http://php.net/manual/en/language.operators.increment.php

其中注意一下这句:

PHP follows Perl's convention when dealing with arithmetic operations on character variables and not C's. For example, in PHP and Perl $a = 'Z'; $a++; turns $a into 'AA', while in C a = 'Z'; a++; turns a into '[' (ASCII value of 'Z' is 90, ASCII value of '[' is 91). Note that character variables can be incremented but not decremented and even so only plain ASCII alphabets and digits (a-z, A-Z and 0-9) are supported. Incrementing/decrementing other character variables has no effect, the original string is unchanged.

翻译过来是这个样子:

折叠展开PHP 代码

在处理字符变量的算数运算时,PHP 沿袭了 Perl 的习惯,而非 C 的。例如,在 Perl 中 ‘Z’+1 将得到 ‘AA’,而在 C 中,’Z'+1 将得到 ‘[‘(ord(‘Z’) == 90,ord(‘[‘) == 91)。注意字符变量只能递增,不能递减,并且只支持纯字母(a-z 和 A-Z)。

所以, 这个问题的原因在于,就是我们的循环停止条件当$i = Z的时候, ++$i成了AA, 而字符串比较时,AA,BB,XX一直到YZ都是小于等于Z的,所以我们的循环从头到尾一直运行到结束。

正确的写法:

第一种:

折叠展开PHP 代码

for($i=97;$i<122;$i++){

echochr($i).”\n”;

}

第二种:

折叠展开PHP 代码

for($i=ord(‘a’);$i

echochr($i).”\n”;

}

第三种:

折叠展开PHP 代码

foreach(range('a','z')as$word){

echo$word."
";

}

第四种:

折叠展开PHP 代码

for($i=0;$i<26;$i++)

{

echo$str=chr(65+$i).'
';

}

通过以上的方法我们就可以开心的输出a-z的字母了,至于有何作用,大家自己开发咯!!!

Tags: php   循环

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值