Доброго времени суток.
Есть таблица с комментариями, в которой есть id, parent_id, child_id и level
Возникла задача вывести комментарии в виде дерева. Рекурсивную выборку из БД по понятным причинам использовать не хочу. Возникла мысль рекурсивно отсортировать массив с уже выбранными в него комментариями. массив выглядит так:
CODE ( htmlphp):
скопировать код в буфер обмена
( ( [id] => 1 [i] => 0 [parent_id] => 0 [child_id] => 2 [level] => 0 [comment_message] => Тест древовидных комментов 1 ) ( [id] => 2 [i] => 1 [parent_id] => 1 [child_id] => 0 [level] => 1 [comment_message] => Тест древовидных комментов 2 ) ( [id] => 3 [i] => 2 [parent_id] => 0 [child_id] => 6 [level] => 0 [comment_message] => Тест древовидных комментов 3 ) )
Нужно отсортировать массив так, чтобы элементы приняли правильный порядок, для смещения комментария в дереве, я использую level это можно опустить. По умолчанию масив сортируется как есть, то есть в той последовательности в которой запись добавлялась в БД. Понятно, что ответ может быть добавлен когда угодно и окажется в конце. Для сортировки массива как мне кажется больше всего подходит uasort , но я не могу составить cmp функцию для сортировки.
Если нужно что-то уточнить говорите. Возможно забыл чего.
|