我有以下数据。
$96.2k
$75.2k
$44.4k
$35.6k
Etc.......
我想要做的是替换十进制和小数后面的任何数字。然后我想将整数舍入到最接近的十分之一。
我的所有数据都在10k
和90k
所以预期的输出将是..
$100k
$80k
$40k
$40k
我知道我可以使用preg_replace('/\.[0-9]+/', '', $data);
删除小数和数字,但是我可以不使用带函数的常规preg_replace吗?
答案 0 :(得分:2)
<?php
$number = '$96.2k';
$number = str_replace(array('$', 'k'), '', $number);
$number = round($number, -1); // -1 rounds to nearest 10
echo '$' . $number . 'k';
// $100k
?>
答案 1 :(得分:1)
我会使用preg_replace
:
preg_replace_callback
$data = preg_replace_callback('/([0-9]+)\.[0-9]+/', # capture first group of digits
function($m) { # $m is your captured match
return round($m[1], -1); # round our captured match
}, $data);
将您的匹配($m
)四舍五入到最接近的10.请查看round
以了解参数的使用情况。
请参阅working demo