小白教程

 找回密码
 立即注册
查看: 9757|回复: 3

求助这个怎么写代码优

[复制链接]

1

主题

1

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2021-5-19 11:26:19 | 显示全部楼层 |阅读模式
传入一个号
例如: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: 为固定字母
回复

使用道具 举报

0

主题

1

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2021-5-21 20:34:28 | 显示全部楼层
没想到什么好办法,字符串截取吧
回复

使用道具 举报

0

主题

1

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2021-5-26 18:00:57 | 显示全部楼层
  1. function getLastKey($key)
  2. {
  3.     if (preg_match('/^CHN([A-Z]{2})(\d{10})GT$/', $key, $matches)) {
  4.         if ($matches[2] == '9999999999') {
  5.             //这里需要自己处理一下,到ZZ了 下一个会是AAA,这里自己处理,你也没说咋个处理
  6.             $result = 'CHN' . (++$matches[1]) . '0000000001' . 'GT';
  7.         } else {
  8.             $result = 'CHN' . $matches[1] . str_pad($matches[2] + 1, 10, 0, STR_PAD_LEFT) . 'GT';
  9.         }
  10.         return $result;
  11.     }
  12.     return '';
  13. }
复制代码

只有裁开,计算,拼接了,当然替换也可以
回复

使用道具 举报

0

主题

2

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2021-5-28 22:55:15 | 显示全部楼层
哈哈 我之前这样写的
  1. $ae='SFCBZ9999999999YQ';//redis取出数字
  2. $yongwanle=false;
  3. $aejia=intval(substr($ae,5,10))+1;
  4. if($aejia==10000000000){
  5.     $zimu=substr($ae,3,2);
  6.     $ii=701;
  7.     for ($i = 26; $i <= $ii; $i++) {
  8.         $y = ($i / 26);
  9.         $y = intval($y);
  10.         $jieguo=chr($y+64);
  11.         $jieguo.=chr($i-$y*26 + 65);
  12.         if($jieguo==$zimu){
  13.            $ii=$i+1;
  14.         }
  15.         if($i==701){
  16.            $yongwanle=true;
  17.         }
  18.     }
  19.     if($yongwanle){
  20.         die('号段用完了!');
  21.     }
  22.     var_dump(str_replace(substr($ae,3,12),$jieguo.'0000000001',$ae));
  23. }else{
  24.     $aejia=str_pad($aejia,10,0,STR_PAD_LEFT);
  25.     var_dump(str_replace(substr($ae,5,10),$aejia,$ae));
  26. }
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|小白教程 ( 粤ICP备20019910号 )

GMT+8, 2024-9-20 12:35 , Processed in 0.026132 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

快速回复 返回顶部 返回列表