Ваше регулярное выражение в основном правильно, хотя вам не нужно |
в вашем наборе символов, оно должно быть просто [,.]
(или вы можете использовать (\.|,)
).Таким образом, вы можете просто использовать preg_replace
:
$value = preg_replace('/[,.]\d{2}$/', '', $value);
Например:
$values = array('1201203,00', '123,123.23', '12.23', '10.00', '10');
foreach ($values as &$value) {
$value = preg_replace('/[,.]\d{2}$/', '', $value);
}
print_r($values);
Выход:
Array (
[0] => 1201203
[1] => 123,123
[2] => 12
[3] => 10
[4] => 10
)
Демонстрация на 3v4l.org