Php 带数字和字母的代码序列,不带0,1,o&;我

Php 带数字和字母的代码序列,不带0,1,o&;我,php,codeigniter,sequence,increment,Php,Codeigniter,Sequence,Increment,我需要制作代码序列 从A5B开始,下一个代码是A5C,A5D。。。 直到A59,然后下一个A6A,A6B…A99,然后下一个BAA,BAB,BAC 序列为A-Z,然后与2-9连续 $x = $last; // Get Last Value From DB $a = substr($x,0,1); // Get First String $b = substr($x,1,1); // Get Middle String $c = substr($x, -1); // Get Last String

我需要制作代码序列

从A5B开始,下一个代码是A5C,A5D。。。 直到A59,然后下一个A6A,A6B…A99,然后下一个BAA,BAB,BAC

序列为A-Z,然后与2-9连续

$x = $last; // Get Last Value From DB
$a = substr($x,0,1); // Get First String
$b = substr($x,1,1); // Get Middle String
$c = substr($x, -1); // Get Last String
if($c == 'Z'){
$x = $a.$b.'0';
}
elseif($c == '9'){
if ($b == 'Z'){
$x = $a.'0'.'A';
}
elseif($b == '9'){
$a++;
$x = $a.'A'.'A';
}
else{
$b++;
$x = $a.$b.'A';
}
}
else{
$x++;
}
它可以工作,但问题是如何在不使用0,1,o&i的情况下生成代码序列

请帮忙
对不起,我的英语不好

如果您不担心性能,一个简单的解决方法是使用do-while循环不断迭代,直到
$x
不再包含任何不需要的字符:

$x = $last; // Get Last Value From DB
do {
    $a = substr($x, 0, 1); // Get First String
    $b = substr($x, 1, 1); // Get Middle String
    $c = substr($x, -1); // Get Last String
    if ($c == 'Z') {
        $x = $a.$b.'0';
    } elseif ($c == '9') {
        if ($b == 'Z') {
            $x = $a.'0'.'A';
        } elseif ($b == '9') {
            $a++;
            $x = $a.'A'.'A';
        } else {
            $b++;
            $x = $a.$b.'A';
        }
    } else {
        $x++;
    }
} while (preg_match('/[01OI]/', $x));

如果我理解正确,
$a='AAA';echo++$a;//AAB
@splash58如何在不使用0,1,o&i的情况下生成代码序列?它将没有数字
$a='AAZ';echo++$a;//ABA
@splash58你什么意思?我需要代码序列,例如:AAA,如果最后一个字符达到Z,它将是AA2,代码序列没有0,1,o&i,例如:AAZ,下一个是AA2而不是AA1,因为我不会使用1*(0,1,o&i)我误读了你的问题,我测试了它,但为什么它保持加载?我不确定你的意思。它对你不起作用吗?如果我使用do while,页面会继续加载,但是如果我使用Els,页面会继续加载。由于某种原因,页面被卡在无限循环中。有关工作版本,请参见此处: