我有将数字编码为字符串的函数,如:
功能:
public static function encode($number) {
$out = "";
$codes = "abcdefghjkmnpqrstuvwxyz23456789ABCDEFGHJKMNPQRSTUVWXYZ";
while ($number > 53) {
$key = $number % 54;
$number = floor($number / 54) - 1;
$out = $codes{$key}.$out;
}
return $codes{$number}.$out;
}
如何制作将字母转换回数字的反向功能?
答案 0 :(得分:2)
您可以将字符串视为数组并使用该位置,因此编码更容易:
$codes = "abcdefghjkmnpqrstuvwxyz23456789ABCDEFGHJKMNPQRSTUVWXYZ";
return $codes[$number];
您可能需要进行一些错误检查,例如:
return isset($codes[$number]) ? $codes[$number] : false;
然后解码,找到该位置的字母:
$codes = "abcdefghjkmnpqrstuvwxyz23456789ABCDEFGHJKMNPQRSTUVWXYZ";
return strpos($codes, $letter);
如果找不到, strpos()
将为您返回false
。
答案 1 :(得分:0)
易于使用
strpos
功能
public static function decode($letter) {
$letter = $letter[0];
$codes = "abcdefghjkmnpqrstuvwxyz23456789ABCDEFGHJKMNPQRSTUVWXYZ";
$pos = strpos($codes,$letter);
return $pos;
}