Изменение php 1k до 1000 - PullRequest
       2

Изменение php 1k до 1000

3 голосов
/ 20 марта 2011

я хочу сделать переменную, когда преобразует 1k или 1,5k в 1000 или 1500

я пробовал preg_replace, но у меня не работает, потому что он добавляет «000» к числу, поэтому я получаю 1000 и 1,5000

спасибо

Ответы [ 5 ]

2 голосов
/ 20 марта 2011
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". Вы можете убедиться сами здесь.

2 голосов
/ 20 марта 2011

Вы должны попытаться удалить k и умножить результат на 1000.

$digit = "1,5k";
$digit = str_replace(k, "", $digit);
$digit *= 1000;
0 голосов
/ 20 марта 2011
$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;
}
0 голосов
/ 20 марта 2011

Вы можете сделать это зависимым от запятой, например, в псевдокоде $ i = $ input // 1k или 1.5k, если содержит запятую, удалить все запятые, заменить k на 00, иначе заменить k на 000

0 голосов
/ 20 марта 2011

Создайте функцию и в этой функции сделайте оператор if, который проверяет «,», и если он найдет его, вы можете добавить 00, а не 000. Также в этой функции вы можете проверять не только «k», но и « KK 'для миллионов и таких ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...