我希望能够以与HTML中上层有序列表相同的方式输出字母。例如:
<?php
$letter_counter = 1;
echo get_letter($letter_counter);
// Output should be "A".
$letter_counter = 2;
echo get_letter($letter_counter);
// Output should be "B".
$letter_counter = 26;
echo get_letter($letter_counter);
// Output should be "Z".
$letter_counter = 27;
echo get_letter($letter_counter);
// Output should be "AA".
$letter_counter = 28;
echo get_letter($letter_counter);
// Output should be "AB".
$letter_counter = 52;
echo get_letter($letter_counter);
// Output should be "AZ".
?>
它应该可以无限期地继续下去。 &#34; get_letter&#34;的代码是什么?功能看起来像?我认为this page上显示的代码可能会有所帮助,但我不确定如何让它做我想做的事。
谢谢!
答案 0 :(得分:2)
为什么要打扰$ letter_counter = 2; (作为数字),只需指定您想要的最后一个字母。
这样的事情可能会引起人们的兴趣:
$letter = 'A';
$lastLetter = 'ZZZ';
$lastLetter++;
do {
echo $letter,PHP_EOL;
} while ($letter++ !== $lastLetter);
(你知道你可以增加字符串和数字,不是吗?)
答案 1 :(得分:1)
尝试以下函数,它只是将十进制转换为字母基数(=基数27,26个字母加0,我们阻止输出)
function get_letter($n)
{
$n += floor($n/27); //fixes missing 0s
//characters to be found in base_convert return string
$convert = '123456789abcdefghijklmnopq';
$out = '';
foreach( str_split(base_convert($n, 10, 27)) as $char )
{
$out .= chr(strpos($convert, $char)+65);
}
return $out;
}
对于指定电子表格中的列(例如Excel列名称)或类似内容,此功能可能更适合做您想要的。