我有一个来自查询字符串的字符串中的坐标数组,看起来像这样:
[[50.864750,-1.230874],[50.870490,-1.224007]]
我已经尝试了很多次,但没有创建一个正则表达式来分割我需要它的方式。下面是我需要在正则表达式之后出现这两个坐标的格式:
$coordinateSet[0] = "50.864750 -1.230874";
$coordinateSet[1] = "50.870490 -1.224007";
regex是最好的解决方案还是有更好的替代方案?
由于您的输入格式看起来可以解释为JSON,我建议使用json_decode()
而不是正则表达式(考虑到regexen往往是一个令人头痛的阅读和维护)。
你提到的字符串上的json_decode()
会给你:
array(
array(
50.864750,
-1.230874,
),
array(
50.870490,
-1.224007,
),
)
(对于错误处理,您可能希望确保json_decode()
不返回null
-这将表示输入格式中的语法错误。)
然后,如果您的输出格式是特定的,您可以使用array_map()
和implode(' ', ...)
函数(匿名或其他)来获得您需要的确切结果。