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-)*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算法

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com