【发布时间】:2018-10-26 07:24:32
【问题描述】:
我正在为我的网站解析一些数据并将其标准化。 我解析得到的数据:
[sizes] => Array
(
[0] => 5
[1] => 6
[2] => 10
[3] => 6+
[4] => 7
[5] => 7+
[6] => 8
[7] => 8+
[8] => 9
)
我需要得到:
[0] => US - 5
[1] => US - 6
[2] => US - 10
[3] => US - 6.5
[4] => US - 7.5
[5] => US - 8.5
我尝试了 preg_replace(各种不同的变体)和 str_replace,但似乎没有任何效果。它似乎覆盖了值:
$sizes[$i]= str_replace("7", "US - 7", $sizes[$i]);
$sizes[$i] = preg_replace('/\b6\b/', "US - 6", $sizes[$i]);
$sizes[$i] = preg_replace('~6\+$~m', "US - 6.5", $sizes[$i]);
$sizes[$i] = preg_replace('~5+$~m', "US - 5.5", $sizes[$i]);
我得到类似的东西:
[0] => US - 10
[1] => US - 5.US - 5
[2] => US - 6
[3] => US - 6.US - 5.US - 5
[4] => US - 7
[5] => US - 8
[6] => US - 9
[7] => US - US - 7.5
[8] => US - US - 8.5
如果有人可以提供帮助,我将不胜感激。 谢谢
【问题讨论】:
-
您的数据是一个看起来像
print_r输出的长字符串,还是一个字符串数组? -
这是一个字符串数组
-
保存 6 而不是 7,8 和 9 的逻辑是什么?
-
那么数组是什么?将其添加到问题中,以便我们可以重现。
-
这只是部分示例。数组中的所有数字都需要它。
标签: php preg-replace str-replace