如何在不递增的情况下按字母顺序获取下一个字母? (PHP)

时间:2012-04-24 22:29:47

标签: php increment letters

for ($i=A;$i<L;$i++){                   
    echo $i;
    echo '->';
    echo ++$i;
    echo ', ';
}

给了我:

  

A-> B,C-> D,E-> F,G-> H,I-> J,K-> L

我想要的是:

  

A-> B,B-> C,C-> D,D-> E,E-> F,F-> G

最简单的方法是什么?

4 个答案:

答案 0 :(得分:7)

简单:

for ($i=A;$i<L;){  // remove loop increment                 
    echo $i;
    echo '->';
    echo ++$i;
    echo ', ';
}

答案 1 :(得分:3)

使用range()将字母表作为数组,然后使用正确的int i ++增量。

答案 2 :(得分:2)

如何在递增之前复制值:

for ($i = 'A'; $i < 'L'; $i++) {                   
    $j = $i;
    $j++;
    echo "$i->$j, ";
}

聚苯乙烯。你真的应该引用你的字符串常量。否则,您的日志将充满警告,如下所示:

PHP Notice:  Use of undefined constant A - assumed 'A' in - on line 2
PHP Notice:  Use of undefined constant L - assumed 'L' in - on line 2

答案 3 :(得分:1)

朱利安提到,范围很性感:

$range = range('A', 'L');

// Had to subtract one from loop iteration total, otherwise the $i + 1 
// would throw an undefined index notice
for ($i = 0, $count = count($range); $i < ($count - 1); $i++) {
    echo sprintf('%s->%s,', $range[$i], $range[($i + 1)]);
}

有关range的更多信息。