所以我有这个字符串:
100.25 $ $ -500
我想修改数值然后将其放回字符串中。因此,例如我希望能够取出每个浮点值,操纵它ex(100.25 * 10)和(500 * 2)并将其重新输入(1000.25 $ -1000 $)。它必须是灵活的,因为美元符号也可以在另一边。
提前致谢。
preg_match_all('/\d+/', $str, $matches);
echo $matches[0];
答案 0 :(得分:0)
使用正则表达式(https://regex101.com/)进行此操作(http://ideone.com/3JvnCZ)
<?php
$re = "/[\\d.]+/";
$str = "100.25$-500$";
preg_match_all($re, $str, $matches);
var_dump($matches);
echo ($matches[0][1] * 10) . "$-" . ($matches[0][1] * 2) . "$";
PS:你之前在变量(post,get,json等)中有这个值吗?
答案 1 :(得分:0)
我可以建议这个功能
$correctionArr = array(10, 2);
echo changeString('100.25$-500$', $correctionArr);
function changeString($str, $correct){
$array = explode('-', $str);
if(count($array) > 0){
foreach ($array as $key => $amount) {
if(isset($correct[$key])){
$return[] = (float)$amount * $correct[$key] . '$';
}
else $return[] = $amount;
}
}
return implode('-', $return);
}
在校正数组($ correctionArr)中,您可以设置您想要操作的数量