PHP 无限极分类所形成的三维数组

通过引用方式实现无限极分类

思路:

1.即所有待处理的数据进行包装成下标为主键id(pk)的数组,便于有pid获取对应的父栏目。

2.对包装的数据进行循环,如果为根节点,则将其引用添加到tree中,否则,将其引用添加到其父类的子元素中。这样虽然tree中,只是添加了根节点,但是每个根节点如果有子元素,其中包含了子元素的引用。故能形成树型。

代码如下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/**
  * 把返回的数据集转换成Tree
  * @param array $list 要转换的数据集
  * @param string $pk 自增字段(栏目id)
  * @param string $pid parent标记字段
  * @return array
  * @author dqs <1696232133@qq.com>
  */
function make_tree( $list , $pk = 'id' , $pid = 'pid' , $child = '_child' , $root =0){
   $tree = array ();
   $packData = array ();
   foreach ( $list as $data ) {
     $packData [ $data [ $pk ]] = $data ;
   }
   foreach ( $packData as $key => $val ){
     if ( $val [ $pid ]== $root ){ //代表跟节点
       $tree []=& $packData [ $key ];
     } else {
       //找到其父类
       $packData [ $val [ $pid ]][ $child ][]=& $packData [ $key ];
     }
   }
   return $tree ;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值