2012-04-18 275 views
1

我知道在PHP中,你可以聲明一個變量A,然後如果你在一個循環中增加它,它會去A,B,C .... X,Y,Z,AA,AB, ACPHP int到字符串

是否有任何PHP函數將整數轉換爲對應的字符串在格式

+0

繼承人如何: http://stackoverflow.com/questions/ 5554369/php-how-to-output-list-like-this-aa-ab-ac-all-way-to-zzzy-zzzz-zzzza 被稱爲「Base26」...引號是因爲使用AZ作爲符號(有點不尋常)。 更多信息:http://en.wikipedia.org/wiki/Hexavigesimal – Tei 2012-04-18 15:33:56

回答

0

我開始與Tor的普的答案,我想這樣的作品作爲期望:

function numToString($i) { 
    if($i < 26) { 
     return chr(65 + $i); 
    } else { 
     $i -= 26; 
     $r = $i % 26; 
     return numToString($i - $r).chr(65 + $r); 
    } 
} 
0

的最接近該格式是base_convert,但它使用的0-9A-Z字符集。

您可以使用base 26,然後移動字符集。

+0

它很接近,但實際上不是基於26 ...我喜歡這個主意,但我不確定如何讓它工作。 – Prestaul 2012-04-18 15:55:31

+0

它很簡單,'0'是'A','1'是'B','A'是'K'等等.. – 2012-04-18 16:13:23

+0

啊...所以你做一個基礎轉換,然後str_replace和兩個26元素數組?那肯定會奏效。 – Prestaul 2012-04-18 16:18:05

0

使用CHR函數轉換成ASCII碼(大寫字母從65-90去)整型,所以65 + 1,使用I> = 26你在一個時間

做一個字母所以,這樣的事情...

function noToString($i) { 
    if($i < 26) return chr(65+$i); 
    else return noToString($i-26).chr(65+$i%26); 
} 
+1

'$ i-26'將不起作用 – 2012-04-18 15:39:16

+0

有點太快了,去Prestauls修復... – 2012-04-18 19:26:07