gpt4 book ai didi

php - 将字符串转换为波斯数字格式

转载 作者:行者123 更新时间:2023-12-05 08:42:34 25 4
gpt4 key购买 nike

例如,我有一个波斯数字的数字字符串

۱۱۲۵۱۲۰۱۲۴

英文为1125120124。例如,我想将此字符串转换为每千后以逗号分隔的数字格式

۱,۱۲۵,۱۲۰,۱۲۴

就像我做的那样

number_format(1125120124); // it returns as 1,125,120,124

number_format(112512012); // it returns as 112,512,012

所以实际上我想要与 number_format 方法类似的结果。我刚开始使用正则表达式。尝试了非常基本的模式,但仍然没有接近。试过preg_split拆分字符串并用逗号再次连接它,但似乎不是正确的方法。我有一个函数,我在其中传递一个数字,该数字以波斯字符返回给我该数字。也分享一下

function trans($num)
{
$persian_num_array = [
'0'=>'۰',
'1'=>'۱',
'2'=>'۲',
'3'=>'۳',
'4'=>'۴',
'5'=>'۵',
'6'=>'۶',
'7'=>'۷',
'8'=>'۸',
'9'=>'۹',
];
$translated_num = '';
$temp_array=[];
while ($num > 0) {
array_push($temp_array,$num % 10);
$num = intval($num / 10);
}

foreach($temp_array as $val){
$translated_num.= $persian_num_array[array_pop($temp_array)];
}
echo $translated_num;

}

最佳答案

由于转换为波斯语只是字符替换,您可以使用内置的 number_format() 函数格式化数字,然后替换数字而不替换逗号。这是一个例子:

function trans($num)
{
$persian_num_array = [
'0'=>'۰',
'1'=>'۱',
'2'=>'۲',
'3'=>'۳',
'4'=>'۴',
'5'=>'۵',
'6'=>'۶',
'7'=>'۷',
'8'=>'۸',
'9'=>'۹',
];

$num = (float) $num;
return strtr(number_format($num), $persian_num_array);
}

echo trans(1125120124); // returns ۱,۱۲۵,۱۲۰,۱۲۴

关于php - 将字符串转换为波斯数字格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39762817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com