For循环中的PHP字母值

For循环中的PHP字母值,php,string,variables,Php,String,Variables,我的PHP代码有问题,我试图显示一个带有值的字符串。例如,A=1,B=2。因此,如果我有一个字符串值Cat,它将显示一个值3120,并将所有值相加 非常感谢, Jonathan创建关联数组。键应该是字母,值应该存储值。 获取字母,获取值,并将其转换为新字符串: $string = 'Cab'; $lettersArray = array( 'a' => 1, 'b' => 2, 'c' => 3, //and so on ); $valueStr

我的PHP代码有问题,我试图显示一个带有值的字符串。例如,
A=1
B=2
。因此,如果我有一个字符串值
Cat
,它将显示一个值
3120
,并将所有值相加

非常感谢,


Jonathan

创建关联数组。键应该是字母,值应该存储值。 获取字母,获取值,并将其转换为新字符串:

$string = 'Cab';
$lettersArray = array(
    'a' => 1,
    'b' => 2,
    'c' => 3,
    //and so on
);
$valueString = '';
for ($i=0; $i < strlen($string); $i++) {
    $letter = strtolower(substr($string,$i,1));
    $valueString .= $lettersArray[$letter];
}
echo $valueString;

在数组中组织字母和值

$letters = array(
'a' => 1
, 'b' => 2
, ...
);
绕线

$string = "cat";

$sum = 0;

for($i = 0; i<strlen($string);$i++) {
   $index = $string[$i];
   $sum += $letters[$index];
   print $letters[$index];

}
您可以使用
ord()
获取
ASCII
值并减去
96
。例如:

$str = 'cat';
$val = strtolower($str);
for($i = 0; $i < strlen($str); $i++){
    echo ord($val[$i]) - 96;
}
$str='cat';
$val=strtolower($str);
对于($i=0;$i

strtolower()
转换小写。

显示($i=0;$i想想你在找什么:测试你的代码!它甚至不起作用!(strtolower();谢谢。我解决了这个问题。如果您知道输入总是一个单词,没有空格、数字或特殊字符,那么这是正确的方法。
print $sum;
$str = 'cat';
$val = strtolower($str);
for($i = 0; $i < strlen($str); $i++){
    echo ord($val[$i]) - 96;
}