字母数字在PHP中增加一个字符串(到一定长度)

Dea*_*her 3 php

我需要使用字母数字增量器生成一个序列(或函数来获取"下一个id").

字符串的长度必须是可定义的,字符必须是0-9,AZ.

例如,长度为3:

000
001
002
~
009
00A
00B
~
00Z
010
011
etc..
Run Code Online (Sandbox Code Playgroud)

所以我想这个函数可能会像这样使用:

$code = '009'
$code = getNextAlphaNumeric($code);
ehco $code; // '00A'
Run Code Online (Sandbox Code Playgroud)

我自己正在努力解决这个问题,但很奇怪,如果有人之前已经解决了这个问题,并想出一个比我自己更聪明/更强大的解决方案.

有没有人有一个很好的解决这个问题的方法?

jlm*_*ald 8

像base_convert这样的东西会起作用吗?也许沿着这些方向(未经测试)

function getNextAlphaNumeric($code) {
   $base_ten = base_convert($code,36,10);
   return base_convert($base_ten+1,10,36);
}
Run Code Online (Sandbox Code Playgroud)

我们的想法是你的代码实际上只是一个基数为36的数字,所以你将那个基数为36的数字转换为基数为10,向它加1,然后将其转换回基数36并返回它.

编辑:刚刚意识到代码中可能存在任意字符串长度,但这种方法可能仍然可行 - 如果先捕获所有前导零,然后将其剥离,执行基本36 - >基数10转换,添加一,并添加任何所需的前导零...