Php 是否为包含文本和整数的字符串更正正则表达式?

Php 是否为包含文本和整数的字符串更正正则表达式?,php,regex,Php,Regex,我试图用一个包含文本和整数的字符串做一些数学运算,如下所示: $numberofservings = 8; $myarray = ("300g water", "3 tbsp Paprika powder", "2 tbsp Dried oregano", "1 tbsp Dried thyme"); for($a=0; $a < count($myarray); $a++){ if (preg_match('#[0-9]#', $myarray[$a])) {

我试图用一个包含文本和整数的字符串做一些数学运算,如下所示:

$numberofservings = 8; 
$myarray = ("300g water", "3 tbsp Paprika powder", "2 tbsp Dried oregano", "1 tbsp Dried thyme");

for($a=0; $a < count($myarray); $a++){

  if (preg_match('#[0-9]#', $myarray[$a])) {
        $myarray[$a] = str_replace(preg_match('#[0-9]#', $myarray[$a]), preg_match('#[0-9]#', $myarray[$a]) / $numberofservings, $myarray[$a]);
    }

    $newarray[] = "<label>" . $myarray[$a] . "</label>";

}                   


echo implode("<br />", $newarray);
$numberofservings=8;
$myarray=(“300克水”,“3汤匙辣椒粉”,“2汤匙牛至干”,“1汤匙百里香干”);
对于($a=0;$a,$newarray);
当我回显新数组时,似乎正则表达式只检测到数组的一些值,它给出了以下信息:

300克水 3汤匙辣椒粉 2汤匙干牛至
0.25汤匙干百里香

如果发现什么,则
preg_match
函数返回1。要获得匹配项,必须使用函数的第3个参数

以下是对您的示例的修复:

$amount_part = preg_match('/[0-9]+/', $myarray[$a], $matches);
foreach ($matches as $m) {
    $myarray[$a] = str_replace($m, $m / $numberofservings, $myarray[$a]);
}

成功了!非常感谢。