У меня есть массив, состоящий из 1,5 миллионов пара элементов (разделенный ' «):PHP элементов быстрой кластеризации, хранящиеся в массиве
$array {
[0] => "element1 element2"
[1] => "element2 element3"
[2] => "element8 element4"
[3] => "element8 element5"
[4] => "element4 element5"
[5] => "element6 element7"
[6] => ...
}
Каждая пара элемента является уникальной, и элементы представляют собой строки от 15 до 20 символов.
В моем конвейере этот массив означает [0] «элемент1 связан с элементом2», [1] «элемент2 связан с элементом3», ... Я хотел бы объединить все связанные элементы и получить вывод похожие на:
$array_output {
[0] => "element1 element2 element3"
[1] => "element8 element4 element5"
[2] => "element6 element7"
[3] => ...
}
Я думаю, эта задача очень проста, и я, вероятно, отсутствует очевидный способ сделать это, но я не нашел быстрый способ группироваться мои элементы (т.е. от нескольких минут до нескольких несколько часов).
Я не считаю эту задачу простой и не знаю, как это сделать. Я, вероятно, предлагаю взрываться в пространстве, а затем создавать вложенную иерархическую структуру. Затем напишите что-нибудь, чтобы сгладить эту структуру в нужные группы. –
Я бы очень не хотел делать это в памяти PHP с таким большим количеством пар и вместо этого обрабатывал его в базе данных. –
Я не думаю, что это так проблематично. Если я не понял вопрос, это можно сделать в O (n) времени и пространстве, где n - количество пар на входе (см. Мой ответ). – gandaliter