将数据分组到数组中

时间:2011-05-09 20:34:37

标签: php arrays conditional grouping

我想用PHP分组数据:

我有一个带有转储内容的数组

Array (
    [0] => Array (
            [0] => 123
            [1] => 3000
            [2] => 595
            [3] => 1005
        )

    [1] => Array (
            [0] => 53
            [1] => 700
            [2] => 195
            [3] => 315
        )

    [2] => Array (
            [0] => 82
            [1] => 142
            [2] => 342
            [3] => 640
        )

    [3] => Array (
            [0] => 82
            [1] => 702
            [2] => 200
            [3] => 320
        )
)

此数组表示3D中的项目。我想要实现的是按坐标对它们进行分组,这样如果(粗略地)它们靠近在一起(假设每个轴上的距离小于10个单位)。

到目前为止,我想出了以下脚本:http://pastebin.com/wJ5HpTPL然而它似乎失败了 - 它根本没有任何理由对某些记录进行分组,并且不对那些我想要的记录进行分组。而且我知道它是多么低效但是我尝试了几种失败的方法,它演变成了那些糟糕的代码。

大约有2000个项目,但是脚本将出于管理目的而运行,并且托管在我的本地服务器上,因此性能并不重要。

2 个答案:

答案 0 :(得分:1)

要计算差异,你可以使用毕达哥拉斯定理和:

Pythag equation

这里解释得非常好:http://betterexplained.com/articles/measure-any-distance-with-the-pythagorean-theorem/

答案 1 :(得分:0)

我已经解决了我的问题,只需在我的代码中使用$row = $bulk[$i];而不是$row = next($bulk);因为某些原因导致问题。