You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PHP中将字母字符串转换为对应数字字符串?

PHP字母转数字字符串的实现方案

利用内置函数的高效实现

可以通过str_split()、array_map()和implode()的组合,配合ord()快速完成转换,核心逻辑是通过ASCII值计算字母对应的序号:

function convert_letters_to_numbers($str) {
    return implode('', array_map(function($char) {
        // 统一转小写后,a的ASCII值为97,减96得到1-26的序号
        return ord(strtolower($char)) - 96;
    }, str_split($str)));
}

// 测试示例
echo convert_letters_to_numbers('abc'); // 输出:123
echo convert_letters_to_numbers('wxyz'); // 输出:23242526
  • str_split($str):将输入字符串拆分为单个字符的数组
  • array_map():遍历每个字符,用ord()获取ASCII值后计算对应数字(小写a对应97,减96得到1,以此类推)
  • implode():将所有数字拼接成最终的字符串

如果需要兼容大小写且区分处理(比如大写A对应1,小写a也对应1),上述代码已经通过strtolower()实现;如果要单独处理大写字母,可以替换为:

$num = ctype_upper($char) ? ord($char) - 64 : ord($char) - 96;

循环遍历的自定义实现

如果更倾向于直观的逻辑流程,也可以用for循环逐个处理字符:

function convert_letters_to_numbers($str) {
    $result = '';
    $strLength = strlen($str);
    
    for ($i = 0; $i < $strLength; $i++) {
        $char = strtolower($str[$i]);
        $result .= ord($char) - 96;
    }
    
    return $result;
}

// 测试示例
echo convert_letters_to_numbers('abc'); // 输出:123
echo convert_letters_to_numbers('WXYZ'); // 输出:23242526

这种方式逻辑清晰,逐个遍历字符并拼接结果,性能和内置函数组合方案接近,适合新手理解底层逻辑。

内容的提问来源于stack exchange,提问作者Samir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 12:55:18