/**
* @Description: 无限极分类一
* @Author: Yang
* @param $data 数据库数据
* @param int $parent_id 父级ID
* @return array
*/
function getTree1($data, $parent_id = 0) {
$tree = array();
foreach ($data as $k => $v) {
if ($v["parent_id"] == $parent_id) {
unset($data[$k]);
if (!empty($data)) {
$children = getTree1($data, $v["id"]);
if (!empty($children)) {
$v["_child"] = $children;
}
}
$tree[] = $v;
}
}
return $tree;
}
/**
* @Description: 无限极分类二
* @Author: Yang
* @param $data 数据库数据
* @param int $parent_id 父级ID
* @param int $level 等级
* @return array
*/
function getTree2($data, $parent_id = 0, $level = 0) {
static $tree = array();
foreach ($data as $k => $v) {
if ($v["parent_id"] == $parent_id) {
$v["level"] = $level;
$tree[] = $v;
getTree2($data, $v["id"], $level + 1);
}
}
return $tree;
}
/**
* @Description: 无限分类三:面包屑导航
* @Author: Yang
* @param $data 数据库数据
* @param $id 分类ID
* @return array
*/
function getCrumbsBar($data, $id) {
static $tree = array();
foreach ($data as $k => $v) {
if ($v["id"] == $id) {
getCrumbsBar($data, $v["parent_id"]);
$tree[] = $v;
}
}
return $tree;
}
//示例
$arr = array(
array('id'=>2,'cname'=>'分类2','parent_id'=>1),
array('id'=>9,'cname'=>'分类9','parent_id'=>8),
array('id'=>1,'cname'=>'分类1','parent_id'=>0),
array('id'=>7,'cname'=>'分类7','parent_id'=>0),
array('id'=>3,'cname'=>'分类3','parent_id'=>2),
array('id'=>4,'cname'=>'分类4','parent_id'=>0),
array('id'=>6,'cname'=>'分类6','parent_id'=>5),
array('id'=>8,'cname'=>'分类8','parent_id'=>7),
array('id'=>5,'cname'=>'分类5','parent_id'=>4)
);
print_r(getTree1($arr));
暂无评论