使用php操作字符串中的数字

时间:2014-12-03 20:28:03

标签: php string replace numbers preg-replace

所以我有这个字符串:

100.25 $ $ -500

我想修改数值然后将其放回字符串中。因此,例如我希望能够取出每个浮点值,操纵它ex(100.25 * 10)和(500 * 2)并将其重新输入(1000.25 $ -1000 $)。它必须是灵活的,因为美元符号也可以在另一边。

提前致谢。

preg_match_all('/\d+/', $str, $matches);
echo $matches[0];

2 个答案:

答案 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)中,您可以设置您想要操作的数量