博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
树形菜单文档 - layui.tree-示例
阅读量:6163 次
发布时间:2019-06-21

本文共 3868 字,大约阅读时间需要 12 分钟。

  hot3.png

 

1, 'name'=>'book', 'parent_id'=>0 ), array( 'id'=>2, 'name'=>'music', 'parent_id'=>0 ), array( 'id'=>3, 'name'=>'book1', 'parent_id'=>1 ), array( 'id'=>4, 'name'=>'book2', 'parent_id'=>3 ));$r = PHPTree::makeTree($data);echo json_encode($r);*/define("HOST", "aaaa"); //主机名define("USER", "bbbb"); //账号define("PASS", "ccccc"); //密码define("DBNAME", "ddd-database"); //数据库名$conn = new mysqli(HOST, USER, PASS);$conn->select_db(DBNAME);$sql = "SELECT catename AS name,id,pid AS pId,cateorder FROM wuxianfenlei_deepcate ORDER BY id DESC";$result = $conn->query($sql);$data1 = [];while ($row = $result->fetch_assoc()) { $data1[] = $row;}//echo json_encode($data1);$r = PHPTree::makeTree($data1, array( 'primary_key' => 'id', 'parent_key' => 'pId'));echo json_encode($r);

 

* @des PHP生成树形结构,无限多级分类 * @version 1.2.0 * @Licensed ( http://www.apache.org/licenses/LICENSE-2.0 ) * @updated 2015-08-26 */class PHPTree{ protected static $config = array( /* 主键 */ 'primary_key' => 'id', /* 父键 */ 'parent_key' => 'parent_id', /* 展开属性 */ 'expanded_key' => 'expanded', /* 叶子节点属性 */ 'leaf_key' => 'leaf', /* 孩子节点属性 */ 'children_key' => 'children', /* 是否展开子节点 */ 'expanded' => false ); /* 结果集 */ protected static $result = array(); /* 层次暂存 */ protected static $level = array(); /** * @name 生成树形结构 * @param array 二维数组 * @return mixed 多维数组 */ public static function makeTree($data, $options = array()) { $dataset = self::buildData($data, $options); $r = self::makeTreeCore(0, $dataset, 'normal'); return $r; } /* 生成线性结构, 便于HTML输出, 参数同上 */ public static function makeTreeForHtml($data, $options = array()) { $dataset = self::buildData($data, $options); $r = self::makeTreeCore(0, $dataset, 'linear'); return $r; } /* 格式化数据, 私有方法 */ private static function buildData($data, $options) { $config = array_merge(self::$config, $options); self::$config = $config; extract($config); $r = array(); foreach ($data as $item) { /** @var TYPE_NAME $primary_key */ $id = $item[$primary_key]; /** @var TYPE_NAME $parent_key */ $parent_id = $item[$parent_key]; $r[$parent_id][$id] = $item; } return $r; } /* 生成树核心, 私有方法 */ private static function makeTreeCore($index, $data, $type = 'linear') { extract(self::$config); foreach ($data[$index] as $id => $item) { if ($type == 'normal') { if (isset($data[$id])) { /** @var TYPE_NAME $expanded_key */ $item[$expanded_key] = self::$config['expanded']; /** @var TYPE_NAME $children_key */ $item[$children_key] = self::makeTreeCore($id, $data, $type); } else { /** @var TYPE_NAME $leaf_key */ $item[$leaf_key] = true; } $r[] = $item; } else if ($type == 'linear') { /** @var TYPE_NAME $parent_key */ $parent_id = $item[$parent_key]; self::$level[$id] = $index == 0 ? 0 : self::$level[$parent_id] + 1; $item['level'] = self::$level[$id]; self::$result[] = $item; if (isset($data[$id])) { self::makeTreeCore($id, $data, $type); } $r = self::$result; } } return $r; }}?>

效果:

175848_Edl3_1182885.png

 

 

参考资料:

http://www.layui.com/doc/modules/tree.html

https://my.oschina.net/crazymus/blog/491174

http://git.oschina.net/jiusem/PHPTree

 

 

 

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/yjft/blog/1517377

你可能感兴趣的文章
文件特殊权限及facl
查看>>
我的友情链接
查看>>
Android按两次返回键退出应用
查看>>
第一章:认识Redhat Linux
查看>>
文本查看指令
查看>>
我的友情链接
查看>>
android开源项目框架大全:《IT蓝豹》
查看>>
boost库
查看>>
LeetCode——Longest Consecutive Sequence
查看>>
Python对字典(directory)按key和value排序
查看>>
Azure: 给 ubuntu 虚机挂载数据盘
查看>>
BugkuCTF web3
查看>>
僵尸进程、孤儿进程
查看>>
413 Request Entity Too Large
查看>>
VCL组件之重要的公用属性
查看>>
异常球称重问题
查看>>
java 十六进制数的转换
查看>>
Divide and conquer method
查看>>
[sharepoint]根据用户名获取该用户的权限
查看>>
多线程模拟实现生产者/消费者模型 (借鉴)
查看>>