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

xiaoxiao2021-02-28  90

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

思路:

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 ;
转载请注明原文地址: https://www.6miu.com/read-53054.html

最新回复(0)