[php]打印字符a-z的问题

php打印字符a~z,先看个例子

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

好像没什么问题,打印结果却是:
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 ar as at au av aw ax ay az ba bb …. (省略)yy yz

经过好心人提醒,原来php是用26进制,类似于十进制的a=1,b=2….z=25那么aa=26。在做$i++时候符合这个规则。
而做比较时候,’aa’和’z’比较时,还是按照字符串比较的规则,首字母大的则大,所以’aa’还是小于’z’.最后就是出现以上结果。

下面附上几二种简单的方式:

for($i=ord('a'); $i<ord('z'); $i++) {
    echo chr($i);
}
echo implode(',', range('a', 'z'));

发表评论

电子邮件地址不会被公开。 必填项已用*标注


*