很久以前为导出EXCEL写过一个字母累加的函数,今天追加一个数字转为字母的。也就是十进制转26进制。
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| for ($i = 1; $i < 200; $i++) {
| echo $i . ' : ' . num2Letter($i) . '<br />';
| }
|
| function num2Letter($num) {
| $num = intval($num);
| if ($num <= 0)
| return false;
| $letterArr = 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');
| $letter = '';
| do {
| $key = ($num - 1) % 26;
| $letter = $letterArr[$key] . $letter;
| $num = floor(($num - $key) / 26);
| } while ($num > 0);
| return $letter;
| } |
|