Number_format为阿拉伯语/波斯语数字

I have a "price" field in a mysql database, which contains the price of a product in arabic or persian numbers.

Example of number: ۱۲۳۴۵۶۷۸۹۰ //1234567890

I cannot figure out how to format this so that it is formatted in a user-friendly way. By that I mean, grouped by thousands or something similiar. This would be ideal: ۱ ۲۳۴ ۵۶۷ ۸۹۰

number_format in php is what I would have used on latin numbers.

Is there any function which I don't know about, to make this possible?

If not, ideas of how to create one is appreciated.

Thanks

You could use a regex like this:

([۱۲۳۴۵۶۷۸۹۰])(?=(?:[۱۲۳۴۵۶۷۸۹۰]{3})+$)

Search and replace with \1, on the string ۱۲۳۴۵۶۷۸۹۰ would give you ۱,۲۳۴,۵۶۷,۸۹۰ (using , instead of space since SO trims them off. But using space in the replace instead will work just as well).

I would have to agree with the suggestion in the comments though, store the data using the numeric types available and convert them on input/output.

If you can store numbers in your database instead of strings (or convert to ascii numbers), then standard currency formatting with group-separators can be done with php5-intl functions. You just need ISO locale and currency codes:

$nf = new \NumberFormatter('fa_IR', \NumberFormatter::CURRENCY);
echo $nf->formatCurrency(1234.1234, 'IRR');

۱٬۲۳۴ ﷼

Otherwise, @rvalvik's answer is good.

See http://php.net/manual/en/class.numberformatter.php