首页 > Web开发 > 详细

php实现无限极分类

时间:2019-10-12 10:46:04      阅读:100      评论:0      收藏:0      [点我收藏+]
1、树形结构
 1 <?php
 2 /**
 3      * @description
 4      * @param array  $arr 传入的二维数组
 5      * @param string $pk 主键id
 6      * @param string $name 分类名称
 7      * @param string $upid 表示父级id的字段
 8      * @param int    $root 根级别(最高父级一般为0)
 9      * @param int    $index 层级
10      * @return array
11      */
12     function getTree($arr = array(),$pk=‘id‘,$name=‘name‘,$upid=‘pid‘,$root=0,$index=0){
13         $tree = array();
14         foreach ($arr as $k=>$value) {
15             if($value[$upid]==$root){
16                 $value[$name] = str_repeat(‘|--‘, $index).$value[$name];
17                 $tree[] = $value;
18                 $tree = array_merge($tree,getTree($arr,$value[$pk],$index+1));
19             }
20         }
21         return $tree;
22     }
23 
24 ?>
效果如下:
技术分享图片
 
2、添加子目录
 1 <?php
 2 /**
 3      * @description
 4      * @param array  $arr 二维数组
 5      * @param string $pk 主键id
 6      * @param string $upid 表示父级id的字段
 7      * @param string $child 子目录的键
 8      * @return array
 9      */
10     function getTree($arr=array(),$pk=‘id‘,$upid=‘pid‘,$child=‘child‘){
11         $items = array();
12         foreach($arr as $val){
13             $items[$val[$pk]] = $val;
14         }
15         $tree = array();
16         foreach($items as $k=>$val){
17             if(isset($items[$val[$upid]])){
18                 $items[$val[$upid]][$child][]=&$items[$k];
19             }else{
20                 $tree[] = &$items[$k];
21             }
22         }
23         return $tree;
24     }
25 
26 ?>

效果如下:

技术分享图片

测试数组:

$arr = array(
  array(‘id‘=>1,‘name‘=>‘系统设置‘,‘pid‘=>0),
  array(‘id‘=>2,‘name‘=>‘菜单设置‘,‘pid‘=>0),
  array(‘id‘=>3,‘name‘=>‘添加菜单‘,‘pid‘=>2),
  array(‘id‘=>4,‘name‘=>‘编辑菜单‘,‘pid‘=>2),
  array(‘id‘=>5,‘name‘=>‘网站设置‘,‘pid‘=>1),
  array(‘id‘=>6,‘name‘=>‘支付设置‘,‘pid‘=>0)
);


 

技术分享图片

php实现无限极分类

原文:https://www.cnblogs.com/guliang/p/11660038.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!