2

想象我有很多地方,每个项目都包括那个地方的名称、纬度和经度。例如,现在我想使用以英里为单位的半径对附近的项目进行分组。

我如何在 PHP 中实现这一点?

4

1 回答 1

0

您需要有第二个数组来存储数据。以及您的一系列地点的副本。

for each $place in $places_array do
   store $place in $store_array
   for each $place2 in $places2_array do
      if $place2 == $place
         continue
      else
         if compare_radius() == true
             store $place2 in $store_array
         end_if
      end_else
   end_for
   erase each new data in store from $places2_array  (Only if you do not want to replicate data)
end_for

变量

  • $store_array:所有地点按邻近度分组的新数组。它的结构可以是 [0]->[place_1][place_2]、[1]->[place_1] 等...
  • $places_array:你的数据数组。
  • $places2_array:来自 $places_array 的副本。

我知道这不是一个有效的算法,但它可以完成工作。如果您有很多数据,也许最好使用另一种算法。

于 2011-08-31T07:18:51.437 回答