我有一个有趣的难题要解决。我们必须使用PHP find replace命令转换以下变量
from:
$string = '
h= 1.00 h= 2.00 h= 3.50
W= 1.50 w= 3.00 w= 4.50
st=5000 st=6000 st=7000
';
to:
$string = '
A=1.00, B=2.00, C=3.50
A=1.50, B=3.00, C=4.50
A=5000, B=6000, C=7000
';
这意味着很好地格式化字符串数据,有时列只有2但有时候列是3,4,5甚至10。
我需要PHP为我做这个,但我不知道哪些代码对它有好处。
可能是preg_replace可能会有所帮助,但我不确定。
先谢谢你的帮助......
答案 0 :(得分:0)
你可以使用像:
这样简单的东西preg_match_all('/\w+=\s*([\d.]+).+\w+=\s*([\d.]+).+\w+=\s*([\d.]+)/',
$input, $values, PREG_SET_ORDER);
print_r($values);
这将逐行提取数据:
[0] => Array
(
[0] => h= 1.00 h= 2.00 h= 3.50
[1] => 1.00
[2] => 2.00
[3] => 3.50
)
然后很容易重新格式化和重命名。
foreach ($values as $row) {
array_shift($row);
$output .= "A=$row[0], B=$row[1], C=$row[2]\n";
}