php 26位字母转换成数字
发布网友
发布时间:2022-04-28 07:51
我来回答
共5个回答
热心网友
时间:2022-04-28 09:21
<?php
$str="aa";//写你想要算的字符串;
$v;
function getv($s){
$arr=str_split($s,1);
for ($i=0;$i<strlen($s);$i++)
{
$v=gett($arr[$i])*getw(strlen($s)-$i-1)+$v;
}
echo $v;
}
function getw($w){
$x=1;
for ($i=0;$i<$w;$i++){
$x=26*$x;
}
return $x;
}
function gett($ch){
return (ord($ch)-96);
}
echo getv($str);
?>
aa,刚好就是27.你试试吧
热心网友
时间:2022-04-28 10:39
嗯 方法都应该是返回 不应该直接输出 这样没法调用的
function getv($s){
$arr=str_split($s,1);
for ($i=0;$i<strlen($s);$i++)
{
$v=gett($arr[$i])*getw(strlen($s)-$i-1)+$v;
}
return $v;
}
改成return
热心网友
时间:2022-04-28 12:13
private function getv($abc){
$ten = 0;
$len = strlen($abc);
for($i=1;$i<=$len;$i++){
$char = substr($abc,0-$i,1);//反向获取单个字符
$int = ord($char);
$ten += ($int-64)*pow(26,$i-1);
}
return $ten;
}
热心网友
时间:2022-04-28 14:05
ord()返回字符的ascii码值
热心网友
时间:2022-04-28 16:13
function getalphnum($char){
$array=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');
$len=strlen($char);
for($i=0;$i<$len;$i++){
$index=array_search($char[$i],$array);
$sum+=($index+1)*pow(26,$len-$i-1);
}
return $sum;
}
echo getalphnum('ca');
简单,就跟2进制换算成10进制差不多
参考资料:第一php网 php算法