У меня есть внутренняя форма, в которой пользователь должен вводить букву, используя буквы центуриона, такие как ARESTU. Я уже опубликовал это слово в жизни PHP и использовал функцию is_numeric, чтобы заставить пользователя вводить слово, а не число.
Я знаю, хочу иметь возможность преобразовать слово в верхний регистр. Мне нужно найти длину введенного пользователем слова, которое я уже сделал, используя функцию strlen. Я знаю, должен дать каждой букве значение, такое как а = 1, б = 2, с = 3 и т. Д.
Затем мне нужно проверить каждую букву по очереди, чтобы увидеть, какую букву пользователь использовал из тех букв, которые ему дали. Если пользователь использует букву, которой нет в слове, то эта буква не имеет значения. Затем я хочу иметь возможность отображать отображение каждой буквы слова со значением.
Вот пример того, как я хочу, чтобы это выглядело
Если пользователь вводит слово «являются»
Всего 24 буквы
Вот код, который у меня есть, этот код получает только то слово, которое пользователь вводит из сообщения, отображает слово и показывает количество букв в слове.
<? php
$word = $_POST["word"];
$product = 1;strtoupper($word);
print "$word <br> ";
if (is_numeric($word)) {
print "Please enter a word";
}$test = strlen($word);
print "Number of letters in the word are $test";
$lettersArray = array(
'a' = 1,
'e' = 5,
'r' = 18,
's' = 19,
't' = 20,
'u' = 21,
'other' = 0,
);$valueString = "";
for ($i = 0; $i < strlen($word); $i++) {
$letter = strtolower(substr($string, $i, 1));
$valueString. = $lettersArray[$letter];
}$product = $product * $word;
?>
Ее твой код с модификацией
EDIT 2
$word = "ARE";
$product = 1;
strtoupper($word);
print "$word <br> ";
if (is_numeric($word)) {
print "Please enter a word";
}
$test = strlen($word);
print "Number of letters in the word are $test <br>";
$lettersArray = array(
'a' => 1,
'e' => 5,
'r' => 18,
's' => 19,
't' => 20,
'u' => 21,
'other' => 0,
);
$valueString = 0;
$assignednumberalpha = null;
for ($i = 0; $i < strlen($word); $i++) {
$letter = strtolower($word[$i]);
$valueString = $valueString+$lettersArray[$letter];
$assignednumberalpha .= "$letter =".$lettersArray[$letter].'<br>';;
}
$product = $product * $word;
echo $assignednumberalpha;
echo "The final Result : $valueString";
?>
Попробуйте этот код:
<? php
$word = $_POST["word"];
$product = 1;strtoupper($word);
print "$word <br> ";
if (is_numeric($word)) {
print "Please enter a word";
}$test = strlen($word);
print "Number of letters in the word are $test";
// Your array
$lettersArray = array(
'a' => 1,
'e' => 5,
'r' => 18,
's' => 19,
't' => 20,
'u' => 21,
'other' => 0,
);
// convert word into lower case or upper case
$word = strtolower($word);
// Split each chars of word and store in array
$chars = str_split($word);// find the total in foreach or any other loop
foreach ($chars as $char)
{
if(key_exists($char, $lettersArray))
$product = $product * $lettersArray[$char];
}
echo $product;
?>
$array = ['a' => 5, 'b' => 6, 'e' => 7, 'r' => 8, 't' => 9];
function myfunc($array, $word)
{
$tmp = [];
$word = strtolower($word);
for ($i = 0; $i < strlen($word); $i++)
$tmp[] = $array[$word[$i]];
return array_sum($tmp);
}
print_r(myfunc($array, 'bat'));