【发布时间】:2015-12-24 00:42:51
【问题描述】:
我有一个这样的多维数组,是一组经纬度的集合。
multi = [[12.96145, 77.58408],[12.96219, 77.58447],[12.96302, 77.58489],[12.96316, 77.58496],[12.96348, 77.58511],[12.96356, 77.58512],[12.96363, 77.5851],[12.96372, 77.58506],[12.96376, 77.58497],[12.96374, 77.58479]]
我想将上面的数组转换成如下的单个变量:
lat1 = 12.96145
lon1 = 77.58408
lat2 = 12.96219
lon2 = 77.58447
.
.
我试图通过如下漫长的过程来实现上述目标。我希望肯定会有更好的方法来做到这一点。
l1,l2,l3,l4,l5,l6,l7,l8,l9,l10 = multi
lat1 = l1.first
lon1 = l1.last
lat2 = l2.first
lon2 = l2.last
.
.
【问题讨论】:
-
为什么不直接从数组中调用呢?是不是容易多了?
-
@c650 对不起,我没有明白你的意思。如果你再给我一点提示,我一定会努力实现的。
-
为什么不直接从数组中调用,而不是将每个值放入一个变量中?
-
@c650 感谢您的宝贵建议。但我的要求略有不同。我认为我需要单独的值。由于我想将行字符串传递给 rails 应用程序中的自定义 sql 查询,sql 查询就像
sql = "SELECT st_astext(ST_Line_Interpolate_Point(foo.the_line, ST_Line_Locate_Point(foo.the_line, ST_GeomFromText('POINT(#{lat} #{lon})')))) as g FROM (SELECT ST_GeomFromText('LINESTRING(#{lat1} #{lon1},#{lat2} #{lon2}, #{lat3} #{lon3}, #{lat4} #{lon4}, #{lat5} #{lon5})') As the_line) As foo;"。我觉得可以接受的答案符合我的要求。其他方法是否适用于我的上述查询? -
现在我想知道你为什么不使用 ActiveRecord...
标签: arrays ruby multidimensional-array variable-assignment