PHP无限极分类的几种方法
导读:项目开发,经常栏目要做到无限极分类,几种方法
PHP无限极分类的几种方法
复制代码 代码如下:
namespace Util;
class Category{
static public function unlimitedForLevel($cate,$html="--",$pid=0,$level=0){
$arr =array();
foreach ($cate as $v) {
if($v['pid'] == $pid){
$v['level'] = $level+1;
$v['html'] = str_repeat($html,$level);
$arr[] = $v;
$arr = array_merge($arr,self::unlimitedForLevel($cate,$html,$v['id'],$level+1));
}
}
return $arr;
}
//组合一个多维数组
static public function unlimitedForlayer($cate,$name='child',$pid=0){
$arr =array();
foreach ($cate as $v) {
if($v['pid'] == $pid){
$v[$name] = self::unlimitedForlayer($cate,$name,$v['id']);
$arr[] = $v;
}
}
return $arr;
}
//传递子分类PID 返回所有父级分类
static public function getParents($cate,$pid){
$arr=array();
foreach ($cate as $v) {
if($v['id'] == $pid){
$arr[] = $v;
$arr =array_merge(self::getParents($cate,$v['pid']), $arr);
}
}
return $arr;
}
//传递父级分类ID,返回子分类ID
static public function getChildsId($cate,$id){
$arr =array();
foreach ($cate as $v) {
if($v['pid'] == $id){
$arr[] = $v['id'];
$arr = array_merge($arr,self::getChildsId($cate,$v['id']));
}
}
return $arr;
}
//传递父级分类ID 返回所有子分类
static public function getChilds($cate,$id){
$arr =array();
foreach ($cate as $v) {
if($v['pid'] == $id){
$arr[] = $v;
$arr =array_merge($arr,self::getChilds($cate,$v['id']));
}
}
return $arr;
}
}
?>
转自【B5教程网】:http://www.bcty365.com/content-10-1097-1.html
最新文章
- Laravel5.0学习--02 实例进阶
- malloc和new的区别
- mapreduce流程中的几个关键点
- mariadb介绍
- iOS通过http post上传图片 (转)
- 201521123106《java程序设计》第三周学习总结
- KVM之八:快照创建、恢复与删除
- jquery|js|jq常用正则
- Lucene与Solr基础
- Centos安装Grafana
- 高可用Hadoop平台-Oozie工作流
- AtCoder Grand Contest 010 D - Decrementing
- MVC自定义视图引擎地址
- JustOj 2038: 叶神的字符串
- Dll重定向(尚存否?)
- JPA之@GeneratedValue注解(转)
- MySQL/Oracle/SQL Server默认端口、JDBCdriver、Url
- Mac下将C程序创建为动态链接库再由另一个C程序调用
- 《JAVA程序设计》 20155208 实验四 Android程序设计
- 【bzoj2257】[Jsoi2009]瓶子和燃料 扩展裴蜀定理+STL-map
热门文章
- why do we need virtual methods in C++?
- Foundations of Computer Science
- dd if=/dev/zero of=的含义是什么?Linux 下的dd命令使用详解
- json处理三部曲之第二曲:利用Jackson处理json
- VBS基础篇 - 杂项 - Sendkeys
- hdu_2141_Can you find it?(二分)
- 二分图匹配之KM求二分图最佳匹配算法
- 1213 How Many Tables 简单的并查集问题
- CATransform3D的使用以及各个参数的含义
- QML插件扩展(一)