我想得到字符串中数字的总和。我有以下PHP:
$desc = "+2.23% critical damage";
$count = 3;`
现在我想在新字符串中使用$count*$desc
的值,如下所示:
$sum = "+6.69% critical damage";
我该如何管理?如何将此字符串中的数字乘以$count
?
答案 0 :(得分:0)
三种可能性。
丑陋,但工作(在字符串上使用<?php
$desc = "+2.23% critical damage";
$count = 3;
$sum = floatval($desc) * $count . "% critical damage";
echo $sum;
# 6.69% critical damage
?>
):
<?php
# define a regex to allow digits and points directly connected
$regex = '~[\d.]+~';
preg_match($regex, $desc, $num);
$sum = floatval($num[0]) * $count . "% critical damage";
echo $sum;
# 6.69% critical damage
?>
第二:正则表达式方法。
jmp
第三种可能性(可能是最好的):尝试优化您的实际要求并编辑您的问题:)
答案 1 :(得分:0)
如果您的字符串的其余部分是动态的,使用 preg_replace_callback()
替换浮点数可能会更可靠——这样您只需接触字符串中的数字。
sprintf()
对于标准化产品格式非常方便。
代码:(Demo)
$desc = "+2.23% critical damage";
$count = 3;
var_export(
preg_replace_callback(
'~^[+-]\d+(?:\.\d+)?~',
function($m) use ($count) {
return sprintf('%+.2f', $m[0] * $count);
},
$desc,
1
)
);
输出:
'+6.69% critical damage'