搜索
系统检测到您的用户名不符合规范:

【PHP无限分类】无限分类树(支持子分类排序)

浏览:6737 发布日期:2017年08月15日 分类:功能实现 关键字: 无限分类树 无限分类
无限分类树(支持子分类排序)
version:1.4
author:Veris
website:www.mostclan.com
更多PHP姿势尽在http://www.mostclan.com,欢迎大家一起编程划水!

ClassTree.class.php<?php
/**
* 无限分类树(支持子分类排序)
* version:1.4
* author:Veris
* website:www.mostclan.com
*/
class ClassTree {
/**
* 分类排序(降序)
*/
static public function sort($arr,$cols){
//子分类排序
foreach ($arr as $k => &$v) {
if(!empty($v['sub'])){
$v['sub']=self::sort($v['sub'],$cols);
}
$sort[$k]=$v[$cols];
}
if(isset($sort))
array_multisort($sort,SORT_DESC,$arr);
return $arr;
}
/**
* 横向分类树
*/
static public function hTree($arr,$pid=0){
foreach($arr as $k => $v){
if($v['pid']==$pid){
$data[$v['id']]=$v;
$data[$v['id']]['sub']=self::hTree($arr,$v['id']);
}
}
return isset($data)?$data:array();
}
/**
* 纵向分类树
*/
static public function vTree($arr,$pid=0){
foreach($arr as $k => $v){
if($v['pid']==$pid){
$data[$v['id']]=$v;
$data+=self::vTree($arr,$v['id']);
}
}
return isset($data)?$data:array();
}
}
使用例子:<?php
include 'ClassTree.class.php';
//===========================Example===========================
$arr=array(
array('id'=>1,'pid'=>0,'name'=>'浙江','sort'=>0),
array('id'=>10,'pid'=>1,'name'=>'宁波','sort'=>0),
array('id'=>13,'pid'=>1,'name'=>'金华','sort'=>1),
array('id'=>4,'pid'=>0,'name'=>'上海','sort'=>2),
array('id'=>5,'pid'=>4,'name'=>'闵行','sort'=>0),
array('id'=>6,'pid'=>10,'name'=>'宁海','sort'=>0),
);
$arr=ClassTree::sort($arr,'sort');
$data=ClassTree::vTree($arr);
$data2=ClassTree::hTree($arr);
echo '<pre>';
print_r($data);
print_r($data2);
返回例子:Array
(
[4] => Array
(
[id] => 4
[pid] => 0
[name] => 上海
[sort] => 2
)

[5] => Array
(
[id] => 5
[pid] => 4
[name] => 闵行
[sort] => 0
)

[1] => Array
(
[id] => 1
[pid] => 0
[name] => 浙江
[sort] => 0
)

[13] => Array
(
[id] => 13
[pid] => 1
[name] => 金华
[sort] => 1
)

[10] => Array
(
[id] => 10
[pid] => 1
[name] => 宁波
[sort] => 0
)

[6] => Array
(
[id] => 6
[pid] => 10
[name] => 宁海
[sort] => 0
)

)
Array
(
[4] => Array
(
[id] => 4
[pid] => 0
[name] => 上海
[sort] => 2
[sub] => Array
(
[5] => Array
(
[id] => 5
[pid] => 4
[name] => 闵行
[sort] => 0
[sub] => Array
(
)

)

)

)

[1] => Array
(
[id] => 1
[pid] => 0
[name] => 浙江
[sort] => 0
[sub] => Array
(
[13] => Array
(
[id] => 13
[pid] => 1
[name] => 金华
[sort] => 1
[sub] => Array
(
)

)

[10] => Array
(
[id] => 10
[pid] => 1
[name] => 宁波
[sort] => 0
[sub] => Array
(
[6] => Array
(
[id] => 6
[pid] => 10
[name] => 宁海
[sort] => 0
[sub] => Array
(
)

)

)

)

)

)

)
评论() 相关
后面还有条评论,
评论支持使用[code][/code]标签添加代码
您需要登录后才可以评论 登录 | 立即注册
收藏
Veris
积分:901 等级:LV2
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /