我想将字母转换为数字,这样:A = 0,B = 1,C = 2 ... Z = 25使用php

时间:2015-04-25 06:36:29

标签: php string function numbers

我想编写一个函数,将输入作为字符串并将字母转换为数字并返回转换后的数字,这样:A(a)= 1,B(b)= 2,C(c)= 3 ...使用php,Z(z)= 25 提前谢谢

3 个答案:

答案 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)

  1. 如果您尝试滚动自己的哈希函数:不要

  2. 如果您需要接受ASCII中的其他字符,请使用PHP的ord()函数。

  3. 试试这个:

  4. 此函数返回位置,并可选择接受基本整数以根据需要移动数字。

    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