注册 登录
编程论坛 PHP技术论坛

这个题怎么写代码优

bancheaaa 发布于 2021-01-06 11:48, 1575 次点击
传入一个号
例如:CHNAA0000000001GT  打印出这个号码的下一个号码  CHNAA0000000002GT
例如:CHNBZ9999999999GT  打印出这个号码的下一个号码  CHNCA0000000001GT
新生成规则:CHN+2个字母+10数字+GT
CHN: 为固定字母
2个字母: 系统按顺序自动生成对应的2个字母编号,从AA开始
例如: AA,AB,AC.....AZ,BA,BB,....BZ,CA,CB.....依次类推
10位数字:从0000000001开始顺序递增至9999999999,当用完之后2字母变成AB,然后又重新0000000001开始至9999999999,依次类推。
GT: 为固定字母
1 回复
#2
markgo2021-02-06 15:08
程序代码:

function nextTick($curTick){
    if(strlen($curTick) != 17) return false;
    $curTick = strtoupper($curTick);
    if($curTick == 'CHNZZ9999999999GT') return false;
    $str = substr($curTick,3,12);
    $prefix = substr($str,0,2);
    $number = substr($str,2,10);
   
    if($number*1+1 > 9999999999){
        if(ord($prefix[1])*1+1 <= 90){
            return 'CHN' . $prefix[0].chr(ord($prefix[1])*1+1) . '0000000001GT';
        }else{
            return 'CHN' . chr(ord($prefix[0])*1+1).'A0000000001GT';
        }
    }else{
        return 'CHN' . $prefix . str_pad(($number*1+1),10,'0',STR_PAD_LEFT) . 'GT';
    }
    return false;
}

1