多个 preg_match_all 导致 foreach

Multiple preg_match_all result in foreach

我想替换每个小数以供以后在 Javascript 中使用。所以这是我的代码:

if (preg_match_all("#[0-9]+(\.[0-9]{1,8})#", $operationvalue_new2, $result)) {            
  foreach ($result[0] as $number_element) {                                                                                                      
    $operationvalue_new2 = preg_replace(
      "#[0-9]+(\.[0-9]{1,8})#", 
      "Number(\0)", 
      $operationvalue_new2
    );
    #echo $operationvalue_new2;
  }              
};

下面是一个例子:

//var1812/100*(var1805*var1807*2.688)+(var1808-var1812)*var1806*var1807*1.2/100)

将转换为

//var1812/100*(var1805*var1807*Number(Number(2.688)))+(var1808-var1812)*var1806*var1807*Number(Number(1.2))/100)

但应该是

//var1818=var1812/100*(var1805*var1807*Number(2.688))+(var1808-var1812)*var1806*var1807*Number(1.2)/100)

试试这个:

<?php
$subject = "var1812/100*(var1805*var1807*2.688)+(var1808-var1812)*var1806*var1807*1.2/100)";
$result = preg_replace('/([0-9]+\.[0-9]{1,8})/s', 'number()', $subject);
echo $result;
?>

结果:

var1812/100*(var1805*var1807*number(2.688))+(var1808-var1812)*var1806*var1807*number(1.2)/100)