文档首页> 常见问题> php怎么实现数值转字母

php怎么实现数值转字母

发布时间:2023-03-20 17:08       

php实现数值转字母的方法:1、创建一个php示例文件;2、定义一个numToExcelLetter方法;3、在方法体内通过“while ($num > 0 ) {$mod = (int)($num % $base);$num = (int)($num / $base);if($mod == 0){...}}”方式实现根据数字转换成excel的字母即可。

本教程操作环境:Windows10系统、PHP8.1版、DELL G3电脑

php怎么实现数值转字母?

PHP实现数字转为Excel字母

1.前言

这是借鉴某位大哥(大姐)的写法,主要是消除了递归。

2.具体代码

//根据数字转换成excel的字母
function numToExcelLetter($num)
{
    //由于大写字母只有26个,所以基数为26
    $base = 26;
    $result = '';
    while ($num > 0 ) {
        $mod = (int)($num % $base);
        $num = (int)($num / $base);
        if($mod == 0){
            $num -= 1;
            $temp = numToLetter($base) . $result;
        } elseif ($num == 0) {
            $temp = numToLetter($mod) . $result;
        } else {
            $temp = numToLetter($mod) . $result;
        }
        $result = $temp;
    }
    return $result;
}
function numToLetter($num)
{
    if ($num == 0) {
        return '';
    }
    $num = (int)$num - 1;
    //获取A的ascii码
    $ordA = ord('A');
    return chr($ordA + $num);
}

相关介绍:

int 是集合 ℤ = {..., -2, -1, 0, 1, 2, ...} 中的某个数。

浮点数任意精度/BCMath任意长度整数/GMP

语法:

整型值 Int 可以使用十进制,十六进制,八进制或二进制表示,前面可以加上可选的符号(- 或者 +)。 可以用 负运算符 来表示一个负的int。

要使用八进制表达,数字前必须加上 0(零)。 PHP 8.1.0 起,八进制表达也可以在前面加上 0o 或者 0O 。 要使用十六进制表达,数字前必须加上 0x。要使用二进制表达,数字前必须加上 0b。

从 PHP 7.4.0 开始,整型数值可能会包含下划线 (_),为了更好的阅读体验,这些下划线在展示的时候,会被 PHP 过滤掉。