嗨我的表结构如下
id --auto increment id
alphabet
user_id
name
并且在添加i时需要将英文字母作为增量顺序插入用户,如A,B,C,....Z,AA,AB,AC,...AZ,BA,BB,BC,.....BZ
。
我需要这样做
id alphabet user_id name
------------------------------------------
1 A 1 name-1
2 B 1 name-2
. . . .
. . . .
26 Z 1 name-n
27 A 2 name-1
28 B 2 name-2
. . . .
. . . .
52 Z 2 name-52
53 AA 2 name-53
. . . .
. . . .
. . . .
. AZ 2 .
感谢您的时间。
答案 0 :(得分:1)
检查这篇类似的文章:
Algorithm to get the excel-like column name of a number
这是一个很好的简单递归函数(基于零索引数,意思是0 == A,1 == B等)......
function getNameFromNumber($num) {
$numeric = $num % 26;
$letter = chr(65 + $numeric);
$num2 = intval($num / 26);
if ($num2 > 0) {
return getNameFromNumber($num2 - 1) . $letter;
} else {
return $letter;
}
}
And if you want it one indexed (1 == A, etc):
function getNameFromNumber($num) {
$numeric = ($num - 1) % 26;
$letter = chr(65 + $numeric);
$num2 = intval(($num - 1) / 26);
if ($num2 > 0) {
return getNameFromNumber($num2) . $letter;
} else {
return $letter;
}
}
使用0到10000之间的数字进行测试......
答案 1 :(得分:1)
使用php实现这一点非常容易, 请检查以下代码
$i = 'A';
echo $i;
echo PHP_EOL;
while($i != 'ZZ')
{
echo ++$i;
echo PHP_EOL;
}
中查看结果
答案 2 :(得分:0)