2009-10-21 52 views
1

此函數numtoalpha如何輸出大於9的值的字母等效值? 結果,這樣的事情:10爲A,11爲B等....如何將數字轉換爲PHP中的字母?

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"; 
?> 

回答

8

你需要使用base_convert

$number = $_REQUEST["number"]; # '10' 
base_convert($number, 10, 36); # 'a' 
+0

不知道有關base_convert,感謝很酷的功能。 – Newb 2009-10-22 03:47:24

0

試試這個:

<?php 

    $number = $_REQUEST["number"]; 

    for ($i=0;$i<length($number);$i++) { 
    echo ord($number[$i]); 
    } 

?> 

這會給你相應的字符的ASCII碼。 55削弱它,你會得到10 A,11對於B等...

5

你基本上會做一些數學來生成所需的值正確的ASCII碼。

所以:

if($num>9 && $num<=35) { 
echo(chr(55+$num)) 
} 
0

使用下面的函數。

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