Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中将重复的一维数组转换为多维数组_Php_Arrays_Multidimensional Array_Gps - Fatal编程技术网

在PHP中将重复的一维数组转换为多维数组

在PHP中将重复的一维数组转换为多维数组,php,arrays,multidimensional-array,gps,Php,Arrays,Multidimensional Array,Gps,我有一个一维PHP数组,其中包含纬度、经度和时间数据。数据如下[lat,long,date,lat,long,date,lat,long,date…等等] Array ( [0] => -28.0447606 [1] => 153.4340961 [2] => 1424136836118 [3] => -28.0447612 [4] => 153.4340963 [5] => 1424136876189 [6] => -28.0447658 [7] =&

我有一个一维PHP数组,其中包含纬度、经度和时间数据。数据如下[lat,long,date,lat,long,date,lat,long,date…等等]

Array ( [0] => -28.0447606 [1] => 153.4340961 [2] => 1424136836118 [3] => -28.0447612 [4] => 153.4340963 [5] => 1424136876189 [6] => -28.0447658 [7] => 153.4340962 [8] => 1424136897993 [9] => -28.0447619 [10] => 153.4340615 [11] => 1424136918045 [12] => -28.0447656 [13] => 153.434057 [14] => 1424136938057 [15] => -28.0447613 [16] => 153.4340484 [17] => 1424136958085 [18] => -28.0447791 [19] => 153.4340959 [20] => 1424136978117 [21] => -28.0447584 [22] => 153.4340501 [23] => 1424136998135 [24] => -28.0447676 [25] => 153.434047 [26] => 1424137018179 [27] => -28.044782 [28] => 153.4340982 [29] => 1424137038185 [30] => -28.0447599 [31] => 153.4340496 [32] => 1424137058214 [33] => -28.0447614 [34] => 153.4340531 [35] => 1424137078589 [36] => -28.0447588 [37] => 153.4340963 [38] => 1424137098731 [39] => -28.0447768 [40] => 153.434098 [41] => 1424137138640 [42] => -28.0447141 [43] => 153.4341097 [44] => 1424137158672 [45] => -28.0447628 [46] => 153.4340962 [47] => 1424137178698 [48] => -28.0447622 [49] => 153.4340962 [50] => 1424137198726 [51] => -28.0447528 [52] => 153.4340936 [53] => 1424137218871 [54] => -28.0447636 [55] => 153.4340472 [56] => 1424137258825 [57] => -28.0447608 [58] => 153.434097 [59] => 1424137279945 [60] => -28.0447656 [61] => 153.4340979 [62] => 1424137300018 )

我只是想知道是否有一种简单的方法可以将其转换为二维数组,这样我就可以像
$gps[0][1]
$gps[3][0]等那样访问它们。我尝试了一些方法,比如使用for循环,但肯定还有其他一些方法我忽略了。

如果我没有错的话,这就是你想要的。 您只需更改变量的
$arr

$coords = array_map(function($coords) {
  return array(
    "lat" => $coords[0],  # latitude
    "long" => $coords[1], # longitude
    "ts" => $coords[2]    # timestamp
  );
}, array_chunk($arr, 3));

/*
Array (
  Array (
    [lat] => 12
    [long] => 34
    [ts] => 56
  )
  Array (
    [lat] => 12
    [long] => 34
    [ts] => 56
  )
  ... and so on
)
*/

数据最初是如何到达数组的?任何方法都需要@RamRaider的一个可能的副本。数据来自另一个团队成员以字符串形式发送的JSON文档,我将其分解成一个数组。我建议最好将其作为正确的JSON数据发送,但看起来不会发生这种情况。@developerwjk这个问题似乎要处理一个不同的问题,将多个一维数组转换为多维数组,而我将单个一维数组转换为单个多维数组。。。我知道有点困惑。看起来不管怎样,
Nevershowmyface
都有正确的答案。这正是我需要的。非常感谢。