【问题标题】:I am using PHP and I have a backend form where the user must enter a letter using我正在使用 PHP,并且我有一个后端表单,用户必须使用
【发布时间】:2015-01-10 09:26:13
【问题描述】:

我有一个后端表单,用户必须使用百夫长字母(例如 ARESTU)输入一个字母。我已经将这个词发布到 PHP 生活中,并使用 is_numeric 函数让用户输入一个词而不是数字。

我知道希望能够将单词转换为大写。我需要找到我已经使用 strlen 函数完成的用户输入的单词的长度。我知道必须给每个字母一个值,例如 a = 1、b = 2、c = 3 等。

然后,我需要依次检查每个字母,以查看用户在给出的字母中使用了哪个字母。如果用户使用不在单词中的字母,则不会为该字母赋值。然后我希望能够显示带有值的单词的每个字母。

这是我希望它看起来像的示例

如果用户输入单词'are'

  • A=1
  • R= 18
  • E= 5

字母总数为 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;

?>

【问题讨论】:

  • 您到底想要什么?你得到了什么?
  • 您是否正在搜索ord() 函数将字符转换为ASCII 码? docu
  • 你的数组是错误的,你应该在数组中使用 "=>" insted of "="

标签: php arrays if-statement strlen


【解决方案1】:
$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'));

【讨论】:

  • 首先它是不可读的。第二:这如何回答这个问题?第三:您是否也必须向您的网站发送垃圾邮件?标记为垃圾邮件。
【解决方案2】:

她是你修改后的代码

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";

?>

【讨论】:

  • 谢谢,这帮了我很大的忙,我现在唯一要做的就是显示,尝试让单词停下来,这样当用户在后端表单中输入单词并单击提交按钮时不仅是单词显示,而且如果单词有两个 a,它会显示 a = 2,如果用户输入了一个不在单词中的字母,那么它会显示为 other。
  • @RebekahShaw 在苹果中获得两个 a 吧?无论如何你想在用户输入正确时显示分配给单词的数字?
  • 哈哈对我来说太早了,我应该对 p 说,但是是的,你是对的,这就是我想做的事
  • @RebekahShaw 现在检查,您需要吗?
【解决方案3】:

试试这个代码:

<? 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;
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多