- Описание
- Скриншоты
- Обновления
- Комментарии 0

Благодаря помощи профессионалов на stackoverflow я (почти сам) наконец-то написал функцию, которая выводит структуру категорий из базы данных лестничкой. Когда-то давно пытался сделать, но так и не смог. И вот наконец-то добился результата.
Есть много вариантов решения в интернете, но у одних больше одного запроса в базу, у других слишком сложный процесс выборки.
Моя же функция требует всего лишь один запрос в базу.
function ReintCategory($categories, $parent_id){
$parent_isset = false;
$result = '<ul class="sub_cat_menu">';
foreach ($categories as $row) {
// если id родительской категории = parent_id и у неё parent_id не 0
if(($parent_id == $row["parent"]) && ($row["parent"] > 0)){
$parent_isset = true;
$result .= '<li>'.$row["id"].' '.$row["title"];
$result .= ReintCategory($categories, $row["id"]);
$result .= '</li>';
}
}
$result .= '</ul>';
if($parent_isset == true) {
return $result;
}
return '';
}
echo '<ul class="editor_menu">';
foreach ($categories as $row) {
if($row["parent"] == 0) {
echo '<li>'.$row["id"].' '.$row["title"];
echo ReintCategory($categories, $row["id"]);
echo '</li>';
}
}
echo "</ul>";
В $categories попадает ассоциативный массив из базы данных.