Группировка данных в массиве - PullRequest
1 голос
/ 10 мая 2011

Я хочу сгруппировать данные в 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 ]

1 голос
/ 10 мая 2011

Чтобы вычислить разницу, вы можете использовать теорему Пифагора и:

Pythag equation

Здесь все хорошо объяснено: http://betterexplained.com/articles/measure-any-distance-with-the-pythagorean-theorem/

0 голосов
/ 10 мая 2011

Я решил мою проблему, просто используя в своем коде $row = $bulk[$i]; вместо $row = next($bulk);, что по какой-то причине вызывало проблемы.

...