我想编写一个函数,将输入作为字符串并将字母转换为数字并返回转换后的数字,这样:A(a)= 1,B(b)= 2,C(c)= 3 ...使用php,Z(z)= 25 提前谢谢
答案 0 :(得分:2)
首先,我们将所有内容都设为小写。
然后,使用function one_char_map($chr)
{
$chr=strtolower($chr);
return ord($chr)-ord('a');
}
function string_map($str)
{
return implode(array_map('one_char_map',str_split($str)));
}
echo string_map('abcD');//0123
函数,我们得到ascii代码,然后减去' a'从它。
{{1}}
答案 1 :(得分:1)
请试试这个:
function conv($alph=null){
return (!is_null($alph)?strpos("abcdefghijklmnopqrstuvwxyz", $alph):"Need String");
}
echo "<br /><br />";
echo conv("a");
编辑:
$str = "abcDefghZ";
$out = "";
for($i=0;$i<strlen($str);$i++){
$out .= conv(strtolower($str[$i]));
}
echo $str."<br />".$out;
答案 2 :(得分:0)
如果您尝试滚动自己的哈希函数:不要。
如果您需要接受ASCII中的其他字符,请使用PHP的ord()函数。
试试这个:
此函数返回位置,并可选择接受基本整数以根据需要移动数字。
function alpha_ord($str, $base = 0) {
$pos = stripos(
'abcdefghijklmnopqrstuvwxyz',
$str{0}
);
if ($pos !== FALSE) {
$pos += $base;
}
return $pos;
}
print alpha_ord('A'); // 0
print alpha_ord('Z', 1); // 26
print alpha_ord('Z'); // 25
print alpha_ord('A', 65); // 65