用于坐标数组的PHP正则表达式(或更好的替代方法)
我有一个查询字符串中的坐标数组,如下所示:用于坐标数组的PHP正则表达式(或更好的替代方法),php,regex,Php,Regex,我有一个查询字符串中的坐标数组,如下所示: [[50.864750,-1.230874],[50.870490,-1.224007]] 我已经尝试了很多次,但未能创建一个正则表达式,该表达式将拆分我需要它的方式。下面是正则表达式生成后我需要这两个坐标的格式: $coordinateSet[0] = "50.864750 -1.230874"; $coordinateSet[1] = "50.870490 -1.224007"; 正则表达式是最好的解决方案还是有更好的替代方案?由于您的输入格式
[[50.864750,-1.230874],[50.870490,-1.224007]]
我已经尝试了很多次,但未能创建一个正则表达式,该表达式将拆分我需要它的方式。下面是正则表达式生成后我需要这两个坐标的格式:
$coordinateSet[0] = "50.864750 -1.230874";
$coordinateSet[1] = "50.870490 -1.224007";
正则表达式是最好的解决方案还是有更好的替代方案?由于您的输入格式看起来可以解释为JSON,我建议使用正则表达式,而不是正则表达式(因为正则表达式往往是阅读和维护的一个头痛问题)
json\u decode()
在您提到的字符串上,将为您提供:
array(
array(
50.864750,
-1.230874,
),
array(
50.870490,
-1.224007,
),
)
(对于错误处理,您可能希望确保json_decode()
没有返回null
——这表示输入格式中存在语法错误。)
然后,如果您的输出格式是特定的,您可以使用带有函数(匿名或其他)的,以获得您需要的确切结果。@flec这将如何帮助任何人回答这个问题?还是仅仅为了证明你没有做我的家庭作业?@jskidd3这就是这个网站的工作原理。你展示了你失败的地方,人们帮助你改正。不是你说你需要什么,人们为你做什么……因为这不是你要问的,我把它作为一个评论:你可以在这种格式上使用
json\u decode()
,而不是使用正则表达式(这往往很难阅读和维护);然后是一个array\u map()
和一个内爆(“”,…)
函数(匿名或其他)来获得你需要的确切结果。@pinkgothic这听起来是一个更好的解决方案,如果我把问题改得不那么具体,你能把它作为一个答案吗?很高兴。:)给我抽搐一下。