04
Июн
2017

PHP:Как вывести дерево категорий?

наткнулся на статью хорошо описано про создания дерево категории, но функция вернет ответь в готовый html но я хочу получать дерево в массиве структура такая:

введите сюда описание изображения

//Выбираем данные из БД
$result=mysql_query("SELECT * FROM  categories");
//Если в базе данных есть записи, формируем массив
if   (mysql_num_rows($result) > 0){
    $cats = array();
//В цикле формируем массив разделов, ключом будет id родительской категории, а также массив разделов, ключом будет id категории
    while($cat =  mysql_fetch_assoc($result)){
        $cats_ID[$cat['id']][] = $cat;
        $cats[$cat['parent_id']][$cat['id']] =  $cat;
    }
}

function build_tree($cats,$parent_id,$only_parent = false){
if(is_array($cats) and isset($cats[$parent_id])){
    $tree = '<ul>';
    if($only_parent==false){
        foreach($cats[$parent_id] as $cat){
            $tree .= '<li>'.$cat['name'].' #'.$cat['id'];
            $tree .=  build_tree($cats,$cat['id']);
            $tree .= '</li>';
        }
    }elseif(is_numeric($only_parent)){
        $cat = $cats[$parent_id][$only_parent];
        $tree .= '<li>'.$cat['name'].' #'.$cat['id'];
        $tree .=  build_tree($cats,$cat['id']);
        $tree .= '</li>';
    }
    $tree .= '</ul>';
}
else return null;
return $tree;
}

echo build_tree($cats,0);//результат в html

результат в виде html:

введите сюда описание изображения

Вопрос: возможно ли получит дерево категории в виде массива не зависимо от вложенности

Источник: https://ru.stackoverflow.com/questions/675209/php%D0%9A%D0%B0%D0%BA-%D0%B2%D1%8B%D0%B2%D0%B5%D1%81%D1%82%D0%B8-%D0%B4%D0%B5%D1%80%D0%B5%D0%B2%D0%BE-%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D0%B9

Share

Тебе может это понравится...