一、无限极分类查询 //函数部分 function genTree($items){ $tree = array(); //格式化好的树 foreach ($items as $key=>$item){ $items[$key]['data'] = array(); if (isset($items[$item['parentid']])){ $items[$item['parentid']]['data'][] = &$items[$item['id']]; }else{ $tree[] = &$items[$item['id']]; } } return $tree; } // 查询省市区 $provice = pgquery("select * from address where parentid!=0 order by id asc","all"); //构造数据 $items = array(); foreach($provice as $value){ $items[$value['id']] = $value; } $address = genTree($items); 二、无限极分类归类显示 // 函数部分 function getTree($array, $pid =0, $level = 0){ //声明静态数组,避免递归调用时,多次声明导致数组覆盖 static $list = []; foreach ($array as $key => $value){ //第一次遍历,找到父节点为根节点的节点 也就是pid=0的节点 if ($value['parentid'] == $pid){ //父节点为根节点的节点,级别为0,也就是第一级 $value['level'] = $level; //把数组放到list中 $list[] = $value; //把这个节点从数组中移除,减少后续递归消耗 unset($array[$key]); //开始递归,查找父ID为该节点ID的节点,级别则为原级别+1 getTree($array, $value['id'], $level+1); } } return $list; } // 调用 $list = getTree($list); foreach($list as $key=>$value){ $list[$key]['nbsp'] = str_repeat('ㄴ', $value['level']); }
无限极分类查询及归类
最新推荐文章于 2023-12-05 15:47:17 发布