导读:项目开发,经常栏目要做到无限极分类,几种方法
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

最新文章

  1. Laravel5.0学习--02 实例进阶
  2. malloc和new的区别
  3. mapreduce流程中的几个关键点
  4. mariadb介绍
  5. iOS通过http post上传图片 (转)
  6. 201521123106《java程序设计》第三周学习总结
  7. KVM之八:快照创建、恢复与删除
  8. jquery|js|jq常用正则
  9. Lucene与Solr基础
  10. Centos安装Grafana
  11. 高可用Hadoop平台-Oozie工作流
  12. AtCoder Grand Contest 010 D - Decrementing
  13. MVC自定义视图引擎地址
  14. JustOj 2038: 叶神的字符串
  15. Dll重定向(尚存否?)
  16. JPA之@GeneratedValue注解(转)
  17. MySQL/Oracle/SQL Server默认端口、JDBCdriver、Url
  18. Mac下将C程序创建为动态链接库再由另一个C程序调用
  19. 《JAVA程序设计》 20155208 实验四 Android程序设计
  20. 【bzoj2257】[Jsoi2009]瓶子和燃料 扩展裴蜀定理+STL-map

热门文章

  1. why do we need virtual methods in C++?
  2. Foundations of Computer Science
  3. dd if=/dev/zero of=的含义是什么?Linux 下的dd命令使用详解
  4. json处理三部曲之第二曲:利用Jackson处理json
  5. VBS基础篇 - 杂项 - Sendkeys
  6. hdu_2141_Can you find it?(二分)
  7. 二分图匹配之KM求二分图最佳匹配算法
  8. 1213 How Many Tables 简单的并查集问题
  9. CATransform3D的使用以及各个参数的含义
  10. QML插件扩展(一)