我有以下数据。
$96.2k
$75.2k
$44.4k
$35.6k
Etc.......
我想要做的是替换小数点和小数点后的任何数字。然后我想将整数四舍五入到最接近的十分之一。
我所有的数据都介于10k
和90k
所以预期的输出将是..
$100k
$80k
$40k
$40k
我知道我可以preg_replace('/\.[0-9]+/', '', $data);
用来删除小数和数字,但我不能使用普通的 preg_replace 函数吗?
<?php
$number = '$96.2k';
$number = str_replace(array('$', 'k'), '', $number);
$number = round($number, -1); // -1 rounds to nearest 10
echo '$' . $number . 'k';
// $100k
?>
更多关于回合的信息:http: //php.net/manual/en/function.round.php
而不是使用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
参数的使用。