在PHP中将字母转换为字母位置

在PHP中将字母转换为字母位置,php,Php,上述字符“T”应打印字母表的准确位置/编号。i、 E20 那么,如果 $my_alphabet = "T"; 我应该能知道字母表的位置。i、 e.1 我怎样才能做到这一点 我看到了将数字转换成字母表。。但任何地方都没有相反的结果 谢谢, Kimz通过使用ascii值: $my_alphabet = "A" ; 在ASCII中,字母是按字母顺序排序的,因此…如果字母不是大写,您可以添加这行代码以确保获得字母的正确位置 ord(strtoupper($letterOfAlphabet)) -

上述字符“T”应打印字母表的准确位置/编号。i、 E20

那么,如果

$my_alphabet = "T";
  • 我应该能知道字母表的位置。i、 e.1
我怎样才能做到这一点

我看到了将数字转换成字母表。。但任何地方都没有相反的结果

谢谢,
Kimz通过使用ascii值:

$my_alphabet = "A" ;

在ASCII中,字母是按字母顺序排序的,因此…

如果字母不是大写,您可以添加这行代码以确保获得字母的正确位置

ord(strtoupper($letterOfAlphabet)) - ord('A') + 1
因此,如果您得到
'T'
'T'
,它将始终返回正确的位置


否则的话,您的答案会很好地完成任务

您应该注意(大写,小写):



即使ascii中每个位置+1处的字母都是大写和小写字符,也会出现问题,因为b不是ord(a)+1,而是ord(a)+1。在这种情况下,要么所有字母都需要转换为大写或小写(strtoupper,strtolower),要么必须使用ctype_upper进行检查,如果字母是大写的(然后是bwoebi的解决方案),或者如果是小写的,则必须使用ord('a')而不是ord('a')。@ThomasE。或者只需使用
strtoupper()
$my_alphabet = strtoupper($my_alphabet);
<?php
$upperArr = range('A', 'Z') ;
$LowerArr = range('a', 'z') ;
$myLetter = 't';

if(ctype_upper($myLetter)){
    echo (array_search($myLetter, $upperArr) + 1); 
}else{
    echo (array_search($myLetter, $LowerArr) + 1); 
}
?>