Php 对文本字符串中的所有数字进行修改
我有很多文本字符串,就像那样 “从12.34到56.78” 或 ‘12.34至56.78’ 或 ‘12.34’ 我想修改所有这些字符串中的数字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
<?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()
那么,您想要一个示例吗?谢谢您给我提供了好函数的名称,我现在就搜索它