我想将数字转换为5个字符的字符串。字符串字符是a-z,A-Z和0-9。该代码的每个组合按" 1"
递增我不知道如何解释,所以我打算给你一个例子。 例如
1 = aaaaa
26 = aaaaz
27 = aaaaA
52 = aaaaZ
53 = aaaa0
62 = aaaa9
63 = aaaba
89 = aaabz
90 = aaab0
所以,如果我的号码是1035,PHP有没有办法计算代码呢?
抱歉,我的问题有点模糊。
我想这样做的原因是因为我不想显示我的数据库主键ID,我想显示这种base63格式。
答案 0 :(得分:1)
这是一个你可以玩的想法,不完全确定我理解你的确切目标..
<?php
function Digit_to_char($s){
$s1 = str_split($s);
while(list($k,$v) = each($s1)){
$s2[] = str_replace(range(0,9), array("a","b","c","d","e","f","g","h","y","z"), $v);
}
return implode('',$s2);
}
echo Digit_to_char(12345); // prints bcdef
?>
答案 1 :(得分: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);
}