首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

,小弟我后台有一个无限级分类树菜单表,小弟我在前台调用此表,如何才有级数地调用出来

2013-12-10 
求助,我后台有一个无限级分类树菜单表,我在前台调用此表,怎么才有级数地调用出来我要实现就像这样的效果

求助,我后台有一个无限级分类树菜单表,我在前台调用此表,怎么才有级数地调用出来


我要实现就像这样的效果 

我应该怎么做呢,我做了以下工作

我后台的无限分类树表



CREATE  TABLE IF NOT EXISTS `www.dianxin.com`.`dx_gd_type` (
  `t_id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '分类ID\n' ,
  `t_name` VARCHAR(120) NULL COMMENT '购物名称分类\n' ,
  `t_family_id` varchar(11) NOT NULL DEFAULT '00000000' COMMENT ' 父ID,顶级分类默认为0\n' ,
  `t_orders` SMALLINT(5) NULL COMMENT '购物分类排序\n' ,
  `t_remark` varchar(50) NULL COMMENT '备注\n' ,
  PRIMARY KEY (`t_id`) )
ENGINE = MyISAM DEFAULT CHARSET=utf8
COMMENT = '点心购物类型表\n';


注: t_family_id分类这样的,(存的是下面这种规律的数字)

10 代表衣服
20 代表数码
30 代表家具

二级分类
1001 代表男式衣服
1002 代表女式衣服

三级分类

100201 代表女式内衣
100202 代表女式……

要实现像上图的效果,我应该怎么写这个调用代码呢?
[解决办法]
本帖最后由 xuzuning 于 2012-05-28 19:18:23 编辑

//从数据库很容易得到这样的数组
$ar = array(
  array('10', '代表衣服'),
  array('20', '代表数码'),
  array('30', '代表家具'),
  array('1001', '代表男式衣服'),
  array('1002', '代表女式衣服'),
  array('100201', '代表女式内衣'),
  array('100202', '代表女式……'),
);

//分解出分类的层次
$r = array();
foreach($ar as $v) {
  $p =& $r;
  foreach(str_split(array_shift($v), 2) as $k) {
    if(! isset($p[$k])) $p[$k] = array();
    $p =& $p[$k];
  }
  $p['value'] = $v;
}

print_r($r);
得到了这样数组,接下来就太容易了吧
Array
(
    [10] => Array
        (
            [value] => Array
                (
                    [0] => 代表衣服
                )

            [01] => Array
                (
                    [value] => Array
                        (
                            [0] => 代表男式衣服
                        )

                )

            [02] => Array
                (
                    [value] => Array
                        (
                            [0] => 代表女式衣服
                        )

                    [01] => Array
                        (


                            [value] => Array
                                (
                                    [0] => 代表女式内衣
                                )

                        )

                    [02] => Array
                        (
                            [value] => Array
                                (
                                    [0] => 代表女式……
                                )

                        )

                )

        )

    [20] => Array
        (
            [value] => Array
                (
                    [0] => 代表数码
                )

        )

    [30] => Array
        (
            [value] => Array
                (
                    [0] => 代表家具
                )

        )

)

热点排行