博客列表 >id、pid转成children格式

id、pid转成children格式

拾一枝樱花的博客
拾一枝樱花的博客原创
2020年09月16日 13:52:551444浏览

js版本


function toTree(data) {
   let result = []
   if (!Array.isArray(data)) {
       return result
   }
   data.forEach(item => {
       delete item.children;
   });
   let map = {};
   data.forEach(item => {
       map[item.id] = item;
   });
   data.forEach(item => {
       let parent = map[item.pid];
       if (parent) {
           (parent.children || (parent.children = [])).push(item);
       } else {
           result.push(item);
       }
   });
   return result;
}


php版本


public function commentSort($data ,$pid = 0, $ischild=false,$fatherindex=0)
{
   static $arr = array() ;
   foreach ($data as $key => $value) {
       if($value['pid'] == $pid){
           if($ischild){
               //下面相当于
               //array_push($arr[$fatherindex]['children'],$value) ;
               static $child = array() ;
               $child[$fatherindex][] = $value ;
               $arr[$fatherindex]['children'] = $child[$fatherindex] ;
               $fatherindex = $fatherindex;
           } else {
               $arr[$key] = $value ;
               $arr[$key]['children'] = [] ;
               $fatherindex = $key ;
           }
           //继续当前id的子类
           self::commentSort($data,$value['id'],true,$fatherindex) ;
       }
   }
   return (array)$arr;
}

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议