如何使用 php5 将整数值转换为单词格式


How to convert an integer value to word format using php5?

我想将数字转换为单词格式。

例如:

$count = 5;
echo "Hello Mr user this is your ".$count." review."

我需要这样的输出...

"您好,用户先生,这是您的第五次评论。"

在另一个 StackOverflow 线程中检查这一点:

将数字转换为其字符串表示形式

php 中没有内置函数来做到这一点。但是尝试外部库,例如:http://pear.php.net/package/Numbers_Words

如果你指的是内置函数,不,PHP 没有。但是您可以创建自己的。

如果您只查看英文数字,这不是什么大问题。但是,如果您需要处理外语(如阿拉伯语),则必须做一些额外的工作,因为数字和对象具有性别。所以算法变得更加复杂。

为了记录,我正在努力为阿拉伯语制作一个开源转换工具。

我知道

这不是你想要的,但我从某处 php.net 的评论中捡到了这个(找不到来源),它适用于1st243rd85th等输出。

function ordinalize($num)
{
    if ( ! is_numeric($num)) return $num;
    if ($num % 100 >= 11 and $num % 100 <= 13)
    {
        return $num."th";
    }
    elseif ( $num % 10 == 1 )
    {
        return $num."st";
    }
    elseif ( $num % 10 == 2 )
    {
        return $num."nd";
    }
    elseif ( $num % 10 == 3 )
    {
        return $num."rd";
    }
    else
    {
        return $num."th";
    }
}

为了可读性和简单性,您甚至可能要考虑这种格式,具体取决于您期望的数字有多高。如果它们小于 100,您应该能够轻松编写自己的函数。但是,如果它们可以变得非常高:

"用户先生您好,这是您的三千四百二十五条评论。"

听起来有点尴尬:)

希望这对一些有所帮助。