我在mysql数据库中有一个" price“字段,其中包含阿拉伯语或波斯语数字的产品价格。
数字示例:۱۲۳۴۵۶۷۸۹· //1234567890
我不知道如何格式化它,使它以一种用户友好的方式格式化。我的意思是,按数千个或类似的东西分组。这将是理想的:۱۲۳۴۵۶۷۸۹·
php中的number_format是我在拉丁文数字上使用的。
有什么我不知道的函数让这一切成为可能吗?
如果不是,如何创造一个人的想法是值得赞赏的。
谢谢
发布于 2013-05-13 14:43:02
你可以用这样的正则表达式:
([۱۲۳۴۵۶۷۸۹۰])(?=(?:[۱۲۳۴۵۶۷۸۹۰]{3})+$)在字符串\1,上搜索并替换۱۲۳۴۵۶۷۸۹۰将为您提供۱,۲۳۴,۵۶۷,۸۹۰ (使用,而不是空格,因为这样就可以减少它们)。但是,使用替换中的空间也同样有效)。
不过,我必须同意注释中的建议,使用可用的数字类型存储数据,并在输入/输出中转换它们。
发布于 2016-06-02 06:45:29
如果您可以将数字存储在数据库中而不是字符串(或转换为ascii数字),那么使用组分隔符的标准货币格式可以使用php5-intl函数完成。您只需要ISO地区代码和货币代码:
$nf = new \NumberFormatter('fa_IR', \NumberFormatter::CURRENCY);
echo $nf->formatCurrency(1234.1234, 'IRR');۱٬۲۳۴和﷼
否则,@rvalvik的答案是好的。
请参阅http://php.net/manual/en/class.numberformatter.php
https://stackoverflow.com/questions/16524286
复制相似问题