Удалить последний символ из переменной, а затем умножить на другую переменную - PullRequest
0 голосов
/ 19 апреля 2010

У меня есть целая куча процентов, хранящихся как XX% (например, 12%, 50% и т. Д.). Мне нужно удалить знак процента, а затем умножить процент на другую переменную, которая является просто числом (например, 1000, 12000 ), а затем выведите результат. Есть ли простой способ вырезать знак процента и затем вычислить результат с помощью PHP? Или я должен рассмотреть какое-то решение JS?

Ответы [ 6 ]

4 голосов
/ 19 апреля 2010

Вы можете использовать rtrim():

$value = ((int) rtrim('12%', '%')) * 1000';

Редактировать

Строго не нужно вызывать rtrim (), так как он приводится к типу int со знаком процента. Хотя, наверное, чище его раздеть.

var_dump (12 === (int) '12%');
//output: bool(true)
1 голос
/ 19 апреля 2010

Вы можете использовать preg_replace_callback как:

$input = '12%, 50%';  
$input = preg_replace_callback("|(\d+)%|","replace_precent",$input);

echo $input; // 12000, 50000

function replace_precent($matches) {
  return $matches[1] * 1000;
}
1 голос
/ 19 апреля 2010

Если вы используете trim () или str_replace () в PHP, вы можете удалить знак процента. Затем вы сможете умножить полученное число (в конце концов, php слабо набирается).

<?php
    $number = str_replace("%", "", $percentString);
    $newNumber = ((int) $number) * 1000;
    echo $newNumber;
?>
1 голос
/ 19 апреля 2010

Попробуйте это:

$number = str_replace('%', '', '100%');
$result = intval($number) * 5000; // or whatever number
echo $result;
0 голосов
/ 19 апреля 2010
<?php

$input=array('15%','50%','10.99%','21.5%');
$multiplier=1000;

foreach($input as $n){
    $z=floatval($n)*$multiplier;
    print("$z<br>");
}

?>
0 голосов
/ 19 апреля 2010

Вы можете использовать str_replace . Вы также можете передать массив объектов в str_replace, чтобы заменить их все.

<?php
    $number = str_replace("%", "", $percentage);
    $result = $number * $other_var;
    print $result;
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...