2014-12-03 81 views
-1

在串数字,所以我有这个字符串:操纵使用PHP

100.25 $ -500 $

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

在此先感谢。

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

因为我们还没有作出了努力,自行解决问题,其量,看起来你正在寻找[聘请自由职业者为你做你的工作](http://www.freelancer.com)。 StackOverflow不是,也从未成为“给我teh codez”网站。我们帮助 - 我们不是您的免费劳力。如果你 - 事实上 - 自己已经努力了,你需要发布你的代码。 – h2ooooooo 2014-12-03 20:32:10

回答

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),你可以设置你要操纵

+0

非常感谢你!!!!!!!!!!!!!!! – jmanjam321 2014-12-04 15:27:56

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等)?