Php从1k变为1000

时间:2011-03-20 17:08:40

标签: php numbers

我希望在将1k或1,5k转换为1000或1500

时创建一个变量

我试过preg_replace但我不能为我工作因为它在数字上加了“000”所以我得到1000和1,5000

谢谢

5 个答案:

答案 0 :(得分:2)

您应该尝试删除k并将结果乘以1000.

$digit = "1,5k";
$digit = str_replace(k, "", $digit);
$digit *= 1000;

答案 1 :(得分:2)

function expand_k($str) {
    // If the str does not end with k, return it unchanged.
    if ($str[strlen($str) - 1] !== "k") {
        return $str;
    }

    // Remove the k.
    $no_k = str_replace("k", "", $str);
    $dotted = str_replace("," , ".", $no_k);

    return $dotted * 1000;
}    

$a = "1k";
$b = "1,5k";

$a_expanded = expand_k($a);
$b_expanded = expand_k($b);

echo $a_expanded;
echo $b_expanded;

输出“1000”和“1500”。 You can see for yourself here.

答案 2 :(得分:0)

克里特一个函数,并在该函数中执行if语句检查','如果它找到它你可以添加00而不是000.同样在该函数中你不仅可以检查'k',还可以检查' kk'为数百万等...

答案 3 :(得分:0)

您可以使其依赖于逗号,例如在伪代码中 $ i = $ input // 1k或1.5k 如果包含逗号     删除所有逗号,用00替换k 其他     用000替换k

答案 4 :(得分:0)

$s = "This is a 1,5k String and 1k ";

echo replaceThousands($s);

function replaceThousands($s)
{
    $regex = "/(\d?,?\d)k/";
    $m = preg_match_all($regex, $s, $matches);

    foreach($matches[1] as $i => $match)
    {
        $new = str_replace(",", ".", $match);
        $new = 1000*$new;
        $s = preg_replace("/" .$match."k/", $new, $s);
    }

    return $s;
}