Как получить обратный числовой код из букв?

У меня есть функция, которая кодирует числа в строку, как:

  • 0 -> а
  • 1 -> б
  • 2 -> с
  • 45 -> R

Функция:

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;
}

Как сделать функцию реверса, которая будет конвертировать буквы обратно в цифры?

-1

Решение

Вы можете рассматривать строку как массив и использовать позицию, так что это будет проще для кодирования:

$codes = "abcdefghjkmnpqrstuvwxyz23456789ABCDEFGHJKMNPQRSTUVWXYZ";
return $codes[$number];

Вы можете захотеть некоторую проверку ошибок как:

return isset($codes[$number]) ? $codes[$number] : false;

Затем для декодирования найдите букву в этой позиции:

$codes = "abcdefghjkmnpqrstuvwxyz23456789ABCDEFGHJKMNPQRSTUVWXYZ";
return strpos($codes, $letter);

strpos() вернусь false для вас, если не найден.

2

Другие решения

Его легко использовать strpos функция

public static function decode($letter) {

$letter = $letter[0];

$codes = "abcdefghjkmnpqrstuvwxyz23456789ABCDEFGHJKMNPQRSTUVWXYZ";

$pos = strpos($codes,$letter);

return $pos;

}
0

По вопросам рекламы [email protected]