我想将数字转换为word格式。
例如:
$count = 5;
echo"Hello Mr user this is your".$count." review."
我需要像这样的输出......
"Hello Mr user this is your fifth review."
可能重复是否有一种简单的方法将数字转换为PHP中的单词?
看看php.net/manual/en/function.number-format.php#97020
@Shakti:这些链接都没有像OP想要的那样(第1,第3,第5 - 第一,第三,第五)或者它们仍然有用。 这不完全是重复的。
@Wesley Murch(+1),好观察。 我的开源转换器只有一个额外的任务:)
你想要这些数字有多高? 我的意思是一般范围是什么?
在另一个StackOverflow线程中检查:
将数字转换为其字符串表示形式
我知道这不完全是你所追求的,但我从php.net某处的评论中找到了这个(找不到源码),它适用于输出,如1st,243rd和85th 。
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,您应该能够轻松编写自己的功能。但是,如果它们可以变得非常高:
"Hello Mr user this is your three thousand four hundred and twenty-fifth review."
听起来有点尴尬:)
希望这会有所帮助。
如果您指的是内置函数,不,PHP没有。但你可以创建自己的。
如果你只看英文数字,??这不是什么大问题。但是如果你需要处理外语(比如阿拉伯语),你必须做一些额外的工作,因为数字和对象都有性别。因此算法变得更复杂一些。
只是为了记录,我正在为阿拉伯语制作一个开源转换工具。
php中没有内置函数来实现。但尝试外部lib:http://pear.php.net/package/Numbers_Words