Php 对文本字符串中的所有数字进行修改

Php 对文本字符串中的所有数字进行修改,php,regex,explode,Php,Regex,Explode,我有很多文本字符串,就像那样 “从12.34到56.78” 或 ‘12.34至56.78’ 或 ‘12.34’ 我想修改所有这些字符串中的数字 <?php $array = explode(' ',$string); foreach ($array as $value) { if(is_numeric($value)) $newarray[] = round($value); // or other functions else $newar

我有很多文本字符串,就像那样

“从12.34到56.78”

‘12.34至56.78’

‘12.34’

我想修改所有这些字符串中的数字

<?php
$array = explode(' ',$string);
foreach ($array as $value) {
    if(is_numeric($value))
        $newarray[] = round($value); // or other functions
    else
        $newarray[] = $value;
}
$newstring = implode(' ',$newarray);

根据您的评论,您可以查看
preg\u replace\u callback()

考虑下面的代码,这些代码很容易地循环所有的数字:

<?php

$strings = array('from 12.34 to 56.78', '12.34 to 56.78', '12.34');
$values = array();

$regex = '~\b\d[\d.]+\b~';
foreach ($strings as $string) {
    $string = preg_replace_callback($regex,
        function($match) {
            // or anything else
            return round($match[0]);
        },
        $string);
    $values[] = $string;
}

print_r($values);
# [0] => from 12 to 57
# [1] => 12 to 57
# [2] => 12

?>


这类修改的预期结果是什么?如果您确定唯一的分隔符是空格,我认为这是一个非常有效的解决方案。@RomanPerekhrest文本字符串与输入的字符串类似非常感谢,但我想输入一个数字较少的字符串,并在修改这些数字后返回带有新数字的相同字符串,我认为你的代码将从所有的数据中提取数字strings@Mostafa:您可以使用
preg\u replace\u callback()
那么,您想要一个示例吗?谢谢您给我提供了好函数的名称,我现在就搜索它