<?php
function getNewLetter($letter, $number) {
$number = $number % 26;
$new_ascii_value = ord($letter) + $number;
if($new_ascii_value < 65){
$number = abs($number) - (ord($letter) - 65);
return chr(91 - $number);
}else if($new_ascii_value >= 91){
return chr(64 + ($new_ascii_value - 90));
}
return chr($new_ascii_value);
}
echo getNewLetter("H", 4),PHP_EOL;
echo getNewLetter("H", 26),PHP_EOL;
echo getNewLetter("H", -4),PHP_EOL;
echo getNewLetter("A", -1),PHP_EOL;
echo getNewLetter("A", -27),PHP_EOL;
echo getNewLetter("A", -2),PHP_EOL;
echo getNewLetter("B", -3),PHP_EOL;
echo getNewLetter("X", 3),PHP_EOL;
echo getNewLetter("Y", 3),PHP_EOL;
echo getNewLetter("E", -7),PHP_EOL;
- Output for 7.2.0 - 7.2.34, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
- L
H
D
Z
Z
Y
Y
A
B
X
preferences:
177.54 ms | 407 KiB | 5 Q