Хорошо, поскольку есть несколько шагов, с которых я начну на высоком уровне. Если вам нужна помощь с любым из них, спросите еще раз!
Прежде всего, вам понадобятся «корневые» узлы, то есть те пользователи, которые не отображаются как дети в столбце друзей.
Затем для каждого из этих пользователей начните опрашивать всех своих детей. Для этого определите функцию, которая получает все дочерние элементы пользователя и которая рекурсивно вызывает себя для дочерних элементов дочернего элемента, который она находит.
Это довольно абстрактно, потому что вопрос в том, что вы хотите делать с этой структурой. Это зависит от последней части, вашего уровня представления. Об этом я знаю меньше всего; может быть фреймворк, который поможет вам визуализировать деревья в PHP, но я не знаю. Обычно будет какая-то структура объекта со свойствами макета и дочерними объектами; создайте эти свойства в своей рекурсивной функции с последнего шага.
Как побочный узел, неясно, является ли полученная вами структура данных фактически деревом. Если вы A, у вас есть друзья B и C, и C также является другом B, B будет отображаться как ваш друг (на уровне 2 дерева) и как друг C (на уровне 3). Вам придется проверить, какое поведение вы предпочитаете в этом месте, и, возможно, придется, например, игнорировать C во второй раз, когда вы столкнетесь с ним.