在 PHP 中将数字 (1, 2, 3) 转换为字符串 (一, 二, 三)
有谁知道如何在 PHP 中将 1、2 或 3 等数字转换为文本版本(一、二、三)?我只需要从 1 转换到 99。我知道我可以编写一个巨大的 switch 语句,但这太荒谬了。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
有谁知道如何在 PHP 中将 1、2 或 3 等数字转换为文本版本(一、二、三)?我只需要从 1 转换到 99。我知道我可以编写一个巨大的 switch 语句,但这太荒谬了。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(7)
有一个 PEAR 包可以做到这一点。它的编号确实比 99 高,并且是多语言的,因此它可能比您需要的更重量级,但仍然值得一看:
http://pear.php.net/package/Numbers_Words
There's a PEAR package that does this. It does number WAY higher than 99 and is multi-language, so it might be more heavyweight than you need, but still worth checking out:
http://pear.php.net/package/Numbers_Words
我最终不得不在面试过程中为编码测试编写此内容。你可以在 Github 上看到我的最终代码:https://github.com/mangs/integers2words
为了方便起见,这里是实现 int2str() 功能的 DemoLibrary 类(所有类成员仅支持
int2str()
功能):I ended up having to write this for a coding test during an interview process. You can see my final code at Github here: https://github.com/mangs/integers2words
For convenience, here is the DemoLibrary class that implements this int2str() functionality (all class members are there only to support the
int2str()
functionality):pear 有一个包 Numbers_Words:
pear has a package Numbers_Words:
并不是很理想,但至少比“巨大的 switch 语句”更好:
尽管如此,您仍然需要编写那个巨大的数组..
Not really ideal, but atleast better than a 'huge switch statement':
You still have to write that huge array though..
这是我在大学时写的一篇文章。它还包括对负数的支持。我知道有一些方法可以缩短和/或清理它,但是嘿,它适用于任何整数!
Here's one I wrote way back in college. It includes support for negative numbers, as well. I know there's some ways it could be shortened and/or cleaned up, but hey, it works well for any integer!
****请参阅此函数的实际操作:****
****See this function in action:****
如果您有来自 NumberFormatter 类.php.net/manual/en/book.intl.php" rel="noreferrer">intl 就在手边(你肯定会在 PHP>5.3 中这样做):
当然,这也适用于 99 以上,对于您需要的任何语言(只需将第一个参数从“en”更改为任何内容)
If you have the NumberFormatter class from intl at hand (which you'll surely do in PHP>5.3):
Of course, that also works over 99, and for any language you need (just change the first parameter from "en" to whatever)