用于坐标数组的PHP正则表达式(或更好的替代方案)

时间:2014-06-01 11:22:35

标签: php regex

我在查询字符串的字符串中有一个坐标数组,如下所示:

[[50.864750,-1.230874],[50.870490,-1.224007]]

我已经多次尝试并且无法创建一个可以分割我需要它的正则表达式。下面是正则表达式后我需要这两个坐标的格式:

$coordinateSet[0] = "50.864750 -1.230874";
$coordinateSet[1] = "50.870490 -1.224007";

正则表达式是最佳解决方案还是有更好的替代方案?

1 个答案:

答案 0 :(得分:2)

由于您的输入格式看起来可以解释为JSON,我建议使用json_decode()而不是正则表达式(给定regexen往往是阅读和维护的头痛)。

你提到的字符串上的

json_decode()会给你:

array(
   array(
       50.864750,
       -1.230874,
   ),
   array(
       50.870490,
       -1.224007,
   ),
)

(对于错误处理,您可能希望确保json_decode()没有返回null - 这表示输入格式中存在语法错误。)

然后,如果您的输出格式是特定的,您可以使用array_map() implode(' ', ...)函数(匿名或其他)来获得所需的确切结果。