2012-04-18 50 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