Как эта функция numtoalpha распечатывает алфавитные эквиваленты значений, которые будут больше 9? Результаты, примерно такие: 10 для A, 11 для B и т. Д.
PHP.net даже не имеет этой функции, или я не смотрел в нужном месте, но я уверен, что он сказал функции.
<?php $number = $_REQUEST["number"]; /*Create a condition that is true here to get us started*/ if ($number <=9) { echo $number; } elseif ($number >9 && $number <=35) { echo $number; function numtoalpha($number) { echo $number; } echo"<br/>Print all the numbers from 10 to 35, with alphabetic equivalents:A for10,etc"; ?>
вам нужно использовать base_convert
:
$number = $_REQUEST["number"]; # '10' base_convert($number, 10, 36); # 'a'
Вы, по сути, собираетесь сделать некоторую математику, чтобы создать правильный код ascii для значения, которое вы хотите.
Так:
if($num>9 && $num<=35) { echo(chr(55+$num)) }
Попробуй это:
<?php $number = $_REQUEST["number"]; for ($i=0;$i<length($number);$i++) { echo ord($number[$i]); } ?>
Это даст вам код ascii для соответствующего символа. Уменьшите его на 55, и вы получите 10 для A, 11 для B и т. Д. …
Используйте следующую функцию.
function patient_char($str) { $alpha = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X ', 'Y', 'Z'); $newName = ''; do { $str--; $limit = floor($str / 26); $reminder = $str % 26; $newName = $alpha[$reminder].$newName; $str=$limit; } while ($str >0); return $newName; }