用于坐标数组的PHP regex(或更好的替代品)


PHP regex (or better alternative) for array of coordinates

我有一个来自查询字符串的字符串中的坐标数组,看起来像这样:

[[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(' ', ...)函数(匿名或其他)来获得您需要的确切结果。