У меня формат цены вроде 1.100.000 Теперь я хочу заменить все точки запятыми, чтобы они выглядели так: 1100000. Чтобы добиться этого, я попробовал этот код
<?php
$number=1.100.000;
$number=str_replace('.',',',$number);
?>
Но это не работает. Может ли кто-нибудь помочь.?
Отсутствует цитата. Попробуйте это —
$number="1.100.000";
$number=str_replace('.',',',$number);
var_dump($number);
Выход —
string(9) "1,100,000"
Чтобы сделать его немного более устойчивым, вы можете заменить точку только в том случае, если у нее есть 3 следующих числа, поэтому она не заменяет центов. Пытаться:
$number = "1.100.000.00";
$number = preg_replace('/\.(\d{3})/', ',$1', $number);
var_dump($number);
Выход —
string(12) "1,100,000.00"
Вы можете использовать RegExp
preg_replace('/\./', ',', $number);
Это заменит все «.» точки с ‘,’.
Ваша функция не работает, потому что
$number=1.100.000;
var_dump($number);
Ошибка разбора: синтаксическая ошибка, неожиданное «.000» (T_DNUMBER)
это не строка и str_replace()
работает только на string
значение
Так что вы должны сделать это
$number="1.100.000"; (type = string)