php无限分类 树状菜单经典代码
2015-12-29 16:47
633 查看
<?php header("content-type:text/html;charset=utf-8"); $conn = mysql_connect('127.0.0.1', 'root', ''); $s = mysql_select_db("local_df", $conn); mysql_query("set names utf8"); $sql = "select * from tree"; $rs = mysql_query($sql); $arr = array(); while ($r = mysql_fetch_array($rs)) { $arr[] = $r; } $tree = getTree($arr); print_r($tree); /** * 树状结构 * @param type $menus 节点信息和 * @return array */ function getTree($menus) { $id = $level = 0; $menuobjs = array(); $tree = array(); $notrootmenu = array(); foreach ($menus as $menu) { $menuobj = new stdClass(); $menuobj->menu = $menu; $id = $menu['id']; $level = $menu['p_id']; $menuobj->nodes = array(); $menuobjs[$id] = $menuobj; if ($level) { $notrootmenu[] = $menuobj; } else { $tree[] = $menuobj; } } foreach ($notrootmenu as $menuobj) { $menu = $menuobj->menu; $id = $menu['id']; $level = $menu['p_id']; $menuobjs[$level]->nodes[] = $menuobj; } return $tree; }
结果如下:
Array
(
[0] => stdClass Object
(
[menu] => Array
(
[0] => 1
[id] => 1
[1] => 江西
[name] => 江西
[2] => 0
[p_id] => 0
)
[nodes] => Array
(
[0] => stdClass Object
(
[menu] => Array
(
[0] => 4
[id] => 4
[1] => 赣州
[name] => 赣州
[2] => 1
[p_id] => 1
)
[nodes] => Array
(
[0] => stdClass Object
(
[menu] => Array
(
[0] => 8
[id] => 8
[1] => 信丰
[name] => 信丰
[2] => 4
[p_id] => 4
)
[nodes] => Array
(
)
)
)
)
[1] => stdClass Object
(
[menu] => Array
(
[0] => 5
[id] => 5
[1] => 南昌
[name] => 南昌
[2] => 1
[p_id] => 1
)
[nodes] => Array
(
)
)
)
)
[1] => stdClass Object
(
[menu] => Array
(
[0] => 2
[id] => 2
[1] => 湖南
[name] => 湖南
[2] => 0
[p_id] => 0
)
[nodes] => Array
(
[0] => stdClass Object
(
[menu] => Array
(
[0] => 6
[id] => 6
[1] => 长沙
[name] => 长沙
[2] => 2
[p_id] => 2
)
[nodes] => Array
(
)
)
[1] => stdClass Object
(
[menu] => Array
(
[0] => 7
[id] => 7
[1] => 岳阳
[name] => 岳阳
[2] => 2
[p_id] => 2
)
[nodes] => Array
(
)
)
)
)
[2] => stdClass Object
(
[menu] => Array
(
[0] => 3
[id] => 3
[1] => 浙江
[name] => 浙江
[2] => 0
[p_id] => 0
)
[nodes] => Array
(
)
)
)
相关文章推荐
- 解决ajax请求出现'302 moved temporarily'问题
- php删除字符串中的所有空格
- 详解WordPress中创建和添加过滤器的相关PHP函数
- yii2.0 控制器方法 视图表单 Form表单处理
- Php反转字符串函数
- 项目上线,php的错误信息必须不让其在页面中显示给客户,
- PHP 汉字转拼音类(全拼与首字母)
- excel文件怎么使用php进行处理
- yii,CI,yaf框架+smarty模板使用方法
- PHP函数 ------ uniqid
- PHP函数 ------ ctype_alnum
- 利用PHP函数计算中英文字符串长度的方法
- php-验证码类-PDO类-缩略图类
- 借助PHP服务器完成SMS信息转发
- 探索使用 PHP 进行实际的数据挖掘和解析
- php-数据库-分页类-上传类
- yii2.0 从控制器到视图的输出
- IE浏览器下POST中文乱码解决办法 - PHP实现
- MTK TP手势添加
- php防止sql注入的程序设计