查找ABC和ACA的字母序列值

时间:2019-05-08 07:09:36

标签: php laravel

假设如果A = 1,B = 2 ----- Z = 26,现在AA = 27,AB = 28,那么现在求出ABC和ACA等的值是什么。

请帮助我用php制作此程序。

2 个答案:

答案 0 :(得分:5)

在输入字符串的每个字符上使用for循环。然后使用ord()函数来获取字符的ASCII码-因为A为65,而A应该为1,则将其调整为64。在每个阶段,将先前的值乘以26来计算新的< em> digit 。

$input = "A";

$index = 0;
$input = strtoupper($input);
for( $i = 0, $end = strlen($input); $i < $end; $i++ )   {
    $index = ($index*26)+(ord($input[$i])-64);
}
echo $index;

对于A,它给出1,对于AB,它给出28

添加了行

$input = strtoupper($input);

应适当调整小写字母。

答案 1 :(得分:-1)

<?php
function abc($string){
    $array = array('A'=>1,'B'=>2,'C'=>3,'D'=>4,"E"=>5,'F'=>6,'G'=>7,'H'=>8,'I'=>9,'J'=>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);  
    $string = strtoupper($string);
    $defautStart = 0;
    $count = strlen($string);
    for($i = 0; $i < $count; $i++){
        $defautStart = ($defautStart * count($array)) + $array[$string[$i]];
    }
    return $defautStart;
}

$string = 'ABC';
$value  = abc($tring);

echo $value;