개발 꿀팁/PHP

논단에서 무한분류의 원리

Jammie 2022. 10. 31. 11:32
반응형

1.데이터시트 만들기

CREATE TABLE category(
`cat_id` SMALLINT unsigned not null auto_increment comment '카테고리 id',
`cat_name` VARCHAR(30) not null default '' comment '카테고리 이름',
`par_id` SMALLINT unsigned not null default 0 comment '카테고리 부모 id',
PRIMARY KEY (`cat_id`)
)engine=myisam default charset=utf8;

2. 함수를 하나 작성하고, 재귀적으로 두루 다니며, 무한 분류를 실현한다

function tree($arr,$pid=0,$level=0)
{
    static $list = array();
    foreach ($arr as $v){
        //만약 부모 노드라면, 그것을 $list에 저장한다
        //그리고 이 노드를 루트 노드로 하여, 그 아이 노드를 두루 돌아다닌다
        if($v['par_id'] == $pid){
            $v['level'] = $level;
            $list[] = $v;
            tree($arr,$v['cat_id',$level+1);
        }
    }
    return $list;
}

 

반응형