Например, у меня есть числовая строка в персидских числах.
۱۱۲۵۱۲۰۱۲۴
что означает 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;
}
$inpt = '۱۱۲۵۱۲۰۱۲۴'
, и вы хотите получить$output = 1,125,120,124
(в виде числа)? Или$output = "1,125,120,124"
? - person Wiktor Stribiżew   schedule 29.09.2016preg_replace('~\d(?=(\d{3})+(?!\d))~', '$0,', $temp)
. - person Wiktor Stribiżew   schedule 29.09.2016