我正在处理活动跟踪文件。我想浏览一个GPX文件并为每1000米里程碑做一些事情。但该设备不一定在1000米,2000米等处记录GPS轨道,因此我不能使用$distance % 1000
之类的东西。我想要的是通过在里程碑之后执行一个动作来检测每次1000米里程碑已经过去。
以下是跟踪距离的示例:
0
3
28
…
997
1003
1027
…
1998
2006
…
2989
3001
等等。在这个例子中,我需要在达到1003,然后是2006,然后是3001时执行一个动作。
每次数据传递1000的倍数时,如何触发事件?
答案 0 :(得分:2)
如果您的数据是以字符串形式出现的,那么您可以通过分隔符来分解字符串,然后循环它。
1003
2006
3001
输出:
this
答案 1 :(得分:1)
如果你想将一个大数组拆分成小数组,每个数组大小相同,你可以使用array_chunk
function:
$ar = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var_dump(array_chunk($ar, 2));
输出:
array(5) {
[0]=>
array(2) {
[0]=>
int(1)
[1]=>
int(2)
}
[1]=>
array(2) {
[0]=>
int(3)
[1]=>
int(4)
}
[2]=>
array(2) {
[0]=>
int(5)
[1]=>
int(6)
}
[3]=>
array(2) {
[0]=>
int(7)
[1]=>
int(8)
}
[4]=>
array(1) {
[0]=>
int(9)
}
}