maxvd
Новичок
Деревовидный массив
Первый раз обрашаюсь за помощью в форум так что извините если что не так
или вопрос глупый
Суть вот в чем:
Существует таблица mysql деревовидная структура: "id", "parent", и менее важные поля
Гдето 500 записей вложеность 5. Так как запросов очень много
(часто надо получить ветвь по "id" и для получения ветви используется самый примитивный метод (рекурсия)). Подумал а зачем мне нагружать сервер запросами размер таблицы не большой таблица практически постоянна, решил полностью загрузить таблицу в массив, а его в сессию
Массив получился вида (привык уже с ним работать)
Все хорошо а дальше как из этого массива мне получить ветвь если известно только $id
(цивилизованно без рекурсии)
Промучился уже 4 часа и ничего путного не придумал
P.S. Из последнего моего бреда
$string var_export($array, true)ж
удаляем все пробельные символы и переносы строки
strchr($string, "array('id'=>'$id')
а дальше как мне отрезать при помоши регуларных выражении (я в них не силен
но мне кажется это единственный способ) ненужный хвост
если это получится
$array_res=eval($string) и готово
может есть менее наркоманский способ чем я придумал
Первый раз обрашаюсь за помощью в форум так что извините если что не так
или вопрос глупый
Суть вот в чем:
Существует таблица mysql деревовидная структура: "id", "parent", и менее важные поля
Гдето 500 записей вложеность 5. Так как запросов очень много
(часто надо получить ветвь по "id" и для получения ветви используется самый примитивный метод (рекурсия)). Подумал а зачем мне нагружать сервер запросами размер таблицы не большой таблица практически постоянна, решил полностью загрузить таблицу в массив, а его в сессию
Массив получился вида (привык уже с ним работать)
PHP:
array('0' => array('name' =>..., 'id' => '1' , 'sub' => array('0'=> array('name' =>...
(цивилизованно без рекурсии)
Промучился уже 4 часа и ничего путного не придумал
P.S. Из последнего моего бреда
$string var_export($array, true)ж
удаляем все пробельные символы и переносы строки
strchr($string, "array('id'=>'$id')
а дальше как мне отрезать при помоши регуларных выражении (я в них не силен
но мне кажется это единственный способ) ненужный хвост
если это получится
$array_res=eval($string) и готово
может есть менее наркоманский способ чем я придумал