带字母和数字的序列号

4
需要 PHP 字母数字计数器,从 A001 开始,一直到 ZZ999。
它从 A001 开始,像 A002,A003 一样往下走......
在 A999 之后 - 它会变成 B001,依此类推,直到 ZZ999。
我的代码仅适用于 A999 到 Z999。
如何做到这一点...?
这里有没有人能帮助我?
提前致谢!!
foreach (range('A', 'Z') as $letter) {
    foreach (range(1, 100) as $number) {
            echo $letter.str_pad($number, 3, '0', STR_PAD_LEFT)."\n";
    }
}

你可以使用 for 循环,因为 PHP 允许你递增字母,所以你可以从 A 循环到 ZZ(参见:http://php.net/manual/en/language.operators.increment.php)。 - Rizier123
2个回答

2
    for($letters = 'A'; strlen($letters) <= 2; $letters++){
      for($number = 1; $number <= 999; $number++){
      echo $letters.str_pad($number, 3, '0', STR_PAD_LEFT).PHP_EOL;
      }
    }

为什么它从“000”开始? - Déjà vu

1
尝试像这样。
for ($letter = 'A'; $letter !== 'AAA'; $letter++){
    foreach (range(1, 999) as $number) {
            echo $letter.str_pad($number, 3, '0', STR_PAD_LEFT)."\n";
    }
}

2
虽然这段代码片段可能解决了问题,但包括解释真的有助于提高您的帖子质量。请记住,您正在为未来的读者回答问题,而这些人可能不知道您的代码建议原因。同时,请尽量不要在代码中添加过多的解释性注释,这会降低代码和解释的可读性! - Rizier123
@Rizier123,请帮我编辑我的帖子,直到我学会为将来的帖子做到这一点。 - ashkufaraz
这难道不是在ZY100处停止而不是ZZ999吗? - Matt Raines
代码有错误。它不仅在 ZY 停止,而不是 ZZ,而且计数器也只计到 100 而不是 999 - Déjà vu
是的,我将条件更改为$letter !== 'AAA'并将计数器更改为999,现在运行良好。 - ashkufaraz
如果你编辑自己的帖子,你会更快地学习的,@ashkufaraz :-p - Martin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接