我有一个将纬度/经度存储在一起的数组。例如:
@values[0] = "-0.709999984318709,60.690000003554324"
我试图将它分成两个数组,@lat
并且@long
基于逗号。
我怎样才能做到这一点?
谢谢
我假设您希望将每个纬度和经度值保持在一起,在这种情况下,将您的数组转换为二维数组是合适的:
my @latlong = map { [ split /,/, $_, 2 ] } @values
我使用了此处的完整符号split
来调用LIMIT
2 个字段的条件。这些数据可能无关紧要,但如果条件发生变化则可能很重要。
该map
语句的代码首先将 的每个元素一@values
分为二,将结果列表 2 放入一个匿名数组[ ... ]
中,然后将其插入到新数组中。打印时生成的数组如下所示Data::Dumper
:
$VAR1 = [
[
'-0.709999984318709',
'60.690000003554324'
]
];
首先,最好写 $values[0] 来引用数组元素。
假设逗号是一致的, split 命令将在这里为您提供帮助:
foreach (@values) {
my @separated = split(',', $_);
push @lat, $separated[0];
push @long, $separated[1];
}
有很多方法可以做到这一点,但我已经以一种应该显示如何处理数组的方式做到了。