Как я могу вычислить сумму «буквенных чисел» в строке? - PullRequest
2 голосов
/ 13 января 2012

Существует ли какая-либо встроенная функция PHP, с помощью которой я могу посчитать сумму индексов букв алфавита, найденных в строке?

<?php
$a = "testword";
echo "Count of Characters is: " . strlen($a); 
?>

Теперь я хочу получить совокупную "сумму" этого слова.

, например

  • A - первая буква алфавита, поэтому она соответствует 1
  • B - вторая буква алфавита, поэтому она соответствует 2
  • C - третья буква алфавита, поэтому она соответствует 3
  • D - четвертая буква алфавита, поэтому она соответствует 4

Таким образом, слово ABCD дает 1 + 2 + 3 + 4 = 10

Точно так же мне нужна функция для "testword" или любого слова.

Ответы [ 3 ]

9 голосов
/ 13 января 2012
function WordSum($word)
{
    $cnt = 0;
    $word = strtoupper(trim($word));
    $len = strlen($word);

    for($i = 0; $i < $len; $i++)
    {
        $cnt += ord($word[$i]) - 64; 
    }

    return $cnt;
}

var_dump(WordSum("testword"));
0 голосов
/ 13 января 2012

Просто чтобы показать совершенно другой метод, для удовольствия продемонстрировать некоторые функции массива PHP:

$data = "testword";

$testResult = array_values(array_merge(array_fill_keys(range('A','Z'),
                                                       0
                                                      ),
                                       array_count_values(str_split(strtoupper($data)
                                                                   )
                                                         )
                                      )
                          );
$wordCount = 0;
foreach($testResult as $letterValue => $letterCount) {
    $wordCount += ++$letterValue * $letterCount;
}

var_dump($wordCount);
0 голосов
/ 13 января 2012
$a = "test";
$b = "word";
echo (strlen($a) + strlen($b));
...