Имею такую таблицу:
id, id_user, left_user, right_user
id - просто ID в таблице
id_user - ID пользователя
left_user - человек под id_user слева
right_user - человек по id_user справа
Как это перенести из базы данных в массив PHP, чтобы разбить по уровням? Я пробовал сделать так:
public function createTree($id_user) {
$data = [];
$user = Users::model()->findByAttributes(array('id_user' => $id_user));
if ($user !== null) {
$data[] = $this->createTree($user->left_user);
$data[] = $this->createTree($user->right_user);
}
return $data;
}
Но массив возвращается с одним элементом, и не получается разбивать по уровням. Что я делаю не так?
Насколько я вижу из кода переменная $data существует только в функции createTree поэтому вы получаете только результат последнего добавления. Переменная должна быть свойством класса $this->data или быть объявленной глобальной global $data.
Продвижение своими сайтами как стратегия роста и независимости