从找到0以上的第一个实例的位置加粗数字 - PHP

时间:2014-09-20 00:42:25

标签: php

我有很长的十进制数字,我想更容易阅读。有很多0的参与,我想加粗字符串的结尾,数字停止只是0的位置。这个数字总是有8位小数,不多也不少。值得注意的是,我希望任何尾随零也是粗体,我不只是想避免整个0加粗。

示例:

之前 - 0.00004320

之后 - 0.0000 4320

非常感谢任何正确方向的帮助或指示。

感谢。

1 个答案:

答案 0 :(得分:3)

你可以使用循环和一些字符串操作来完成它:

function doTheThing($number) {
    $length = strlen($number);
    $period = strpos($number, '.') + 1;
    for ($i = $period; $i < $length; $i++) {
        if ($number[$i] !== '0') {
            $number = substr($number, 0, $i).'<b>'.substr($number, $i).'</b>';
            break;
        }
    }
    return $number;
}
echo doTheThing('0.00004320');

或者您可以使用正则表达式替换来执行此操作:

function doTheThing($number) {
    return preg_replace('/^(\d+\.0*)(\d+)$/', '$1<b>$2</b>', $number);
}
echo doTheThing('0.00004320');
echo doTheThing(sprintf('%.8f', 0.00004320)); // if your number is not a string