将数字转换为5位数字符串

Pet*_*art 6 php design-patterns

我想将一个数字转换为5个字符的字符串.字符串字符是az,AZ和0-9.该代码的每个组合递增"1"

我不知道如何解释它,所以我打算给你一个例子.例如

1 = aaaaa
26 = aaaaz
27 = aaaaA
52 = aaaaZ
53 = aaaa0
62 = aaaa9
63 = aaaba
89 = aaabz
90 = aaab0
Run Code Online (Sandbox Code Playgroud)

所以,如果我的号码是1035,PHP有没有办法计算代码呢?

对不起,我的问题有点模糊.

我想这样做的原因是因为我不想显示我的数据库主键ID,我想显示这个base63格式.

Hav*_*ard 1

我想你可以做这样的事情:

function custom_base_62($n)
{
    if ($n < 1)
        trigger_error('custom_base_62(): This silly system cannot represent zero.', E_USER_ERROR);

    $n -= 1;
    $symbols = array_merge(range('a', 'z'), range('A', 'Z'), range(0, 9));
    $r = '';

    while ($n)
    {
        $r = $symbols[$n % 62] . $r;
        $n = floor($n / 62);
    }

    return str_pad($r, 5, $symbols[0], STR_PAD_LEFT);
}
Run Code Online (Sandbox Code Playgroud)