所以我有这个功能:
function toAlpha($data){
$alphabet = 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');
$alpha_flip = array_flip($alphabet);
if($data <= 25){
return $alphabet[$data];
}
elseif($data > 25){
$dividend = ($data + 1);
$alpha = '';
$modulo;
while ($dividend > 0){
$modulo = ($dividend - 1) % 26;
$alpha = $alphabet[$modulo] . $alpha;
$dividend = floor((($dividend - $modulo) / 26));
}
return $alpha;
}
}
Run Code Online (Sandbox Code Playgroud)
给出一个数字将其转换为字符,它工作正常
但是我还想要一个这样的反向函数,给定这个函数的任何输出,返回输入的确切输入以产生该输出,我试过这个:
function toNum($data){
$alphabet = 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');
$alpha_flip = array_flip($alphabet);
if(strlen($data) == 1){
return (isset($alpha_flip[$data]) ? $alpha_flip[$data] : FALSE);
}
else if(strlen($data) > 1){
$num …Run Code Online (Sandbox Code Playgroud) 这可能是一个不寻常的请求,但对于我的脚本,我需要一个按字母而不是数字递增的函数.例如:
这是一个数字示例:
var i = 0;
while(condition){
window.write('We are at '+i);
++i;
}
Run Code Online (Sandbox Code Playgroud)
从本质上讲,我想用字母来计算,比如Microsoft Excel,而不是数字.所以不是打印"我们在0","我们在1","我们在2"等,我需要打印"我们在A","我们在B","我们在C"等
为了模仿Excel(我能想到的唯一例子),在达到索引25(Z)后,我们可以转到'AA','AB','AC'等.
所以它会像这样工作:
var i = 0;
while(condition){
window.write('We are at '+toLetter(i));
++i;
}
Run Code Online (Sandbox Code Playgroud)
如果有人可以写一个函数然后将一个字母转换回一个数字,即toNumber('A')= 0或toNumber('DC')= 107(我认为),那就更好了.
谢谢!