26进制(字母)转十进制算法

时间:2024-02-25 12:20:03

下面是一个26进制转十进制的算法,目的是将字母(A~Z)转化为十进制的数字。主要用途是为了解决使用phpExcel解析Excel表格的时候,在Excel表格中列是由字母表示的,而很多情况下我们需要了解到当前的列是哪一行,也就是列的行数。所以才有了此算法。

 

function litterToNumber($lineTag)
{
    $transfArray =  array(\'A\'=>1,\'B\'=>2,\'C\'=>3, \'D\'=>4, \'E\'=>5,    \'F\'=>6, \'G\'=>7, \'H\'=>8, \'I\'=>9, \'G\'=>10, \'K\'=>11, \'L\'=>12,\'
M\'=>13, \'N\'=>14, \'O\'=>15, \'P\'=>16, \'Q\'=>17, \'R\'=>18, \'S\'=>19, \'T\'=>20, \'U\'=>21,\'V\'=>22,\'W\'=>23,\'X\'=>24,\'Y\'=>25,\'Z\'=>26);
    
    $len = strlen($lineTag);
    for($i = $len-1; $i >= 0; $i --)
    {
        $value += $transfArray[$temp[$i]]*pow(26,$len-1-$i); 
    }
}