1 Star 0 Fork 1

吃葡萄不吐皮/tree

forked from 弄月/tree 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
Tree.php 1.97 KB
一键复制 编辑 原始数据 按行查看 历史
弄月 提交于 2017-03-03 10:43 . 修复主键不是id时的问题
<?php
/**
+------------------------------------------------------------------------------
* Tree 构建tree状数据
+------------------------------------------------------------------------------
* @author [email protected]
* @version v1.1
+------------------------------------------------------------------------------
*/
class Tree
{
/**
* 主键名称
* @var string
*/
private static $primary = 'id';
/**
* 父键名称
* @var string
*/
private static $parentId = 'parent_id';
/**
* 子节点名称
* @var string
*/
private static $child = 'child';
/**
* 修改主键名称、父键名称、子节点名称
* @param string $primary
* @param string $parentId
* @param string $child
*/
public static function setConfig($primary = '', $parentId = '', $child = ''){
if(!empty($primary)) self::$primary = $primary;
if(!empty($parentId)) self::$parentId = $parentId;
if(!empty($child)) self::$child = $child;
}
/**
* 生成Tree
* @param array $data
* @param number $index
* @return array
*/
public static function makeTree(&$data, $index = 0)
{
$childs = self::findChild($data, $index);
if(empty($childs))
{
return $childs;
}
foreach($childs as $k => &$v)
{
if(empty($data)) break;
$child = self::makeTree($data, $v[self::$primary]);
if(!empty($child))
{
$v[self::$child] = $child;
}
}
unset($v);
return $childs;
}
/**
* 查找子类
* @param array $data
* @param number $index
* @return array
*/
public static function findChild(&$data, $index)
{
$childs = [];
foreach ($data as $k => $v){
if($v[self::$parentId] == $index){
$childs[] = $v;
unset($v);
}
}
return $childs;
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
PHP
1
https://gitee.com/muyi-chengquan/tree.git
[email protected]:muyi-chengquan/tree.git
muyi-chengquan
tree
tree
master

搜索帮助