Как заменить точку запятой в ценовом формате в Stack Overflow

У меня формат цены вроде 1.100.000 Теперь я хочу заменить все точки запятыми, чтобы они выглядели так: 1100000. Чтобы добиться этого, я попробовал этот код

<?php
$number=1.100.000;
$number=str_replace('.',',',$number);
?>

Но это не работает. Может ли кто-нибудь помочь.?

-1

Решение

Отсутствует цитата. Попробуйте это —

$number="1.100.000";
$number=str_replace('.',',',$number);
var_dump($number);

Выход —

string(9) "1,100,000"
6

Другие решения

Чтобы сделать его немного более устойчивым, вы можете заменить точку только в том случае, если у нее есть 3 следующих числа, поэтому она не заменяет центов. Пытаться:

$number = "1.100.000.00";
$number = preg_replace('/\.(\d{3})/', ',$1', $number);
var_dump($number);

Выход —

string(12) "1,100,000.00"
3

Вы можете использовать RegExp

preg_replace('/\./', ',', $number);

Это заменит все «.» точки с ‘,’.

1

Ваша функция не работает, потому что

$number=1.100.000;
var_dump($number);

Ошибка разбора: синтаксическая ошибка, неожиданное «.000» (T_DNUMBER)

это не строка и str_replace() работает только на string значение

Так что вы должны сделать это

$number="1.100.000";  (type = string)
1
По вопросам рекламы [email protected]