如何用PHP实现生成多级嵌套菜单数据?
- 内容介绍
- 文章标签
- 相关推荐
本文共计155个文字,预计阅读时间需要1分钟。
PHP生成无限级菜单数据生成无限级分类@param array $list 数据@param string $pk 主键ID@param string $pid 父ID@param string $son 子级字段@param int $root 根节点@return arrayprotected function tree($list, $pk, $pid, $son, $root) { $tree=array(); foreach ($list as $data) { if ($data[$pid]==$root) { $children=$this->tree($list, $pk, $pid, $son, $data[$pk]); if (!empty($children)) { $data['children']=$children; } $tree[]=$data; } } return $tree;}
/** * 生成无限级分类 * @param $list 数据 * @param string $pk 主键ID * @param string $pid 子ID * @param string $son 子级字段 * @param int $root * @return array */ protected function tree($list, $pk = 'id', $pid = 'pid', $son = 'son', $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]][$son][] = &$packData[$key]; } } return $tree; }
本文共计155个文字,预计阅读时间需要1分钟。
PHP生成无限级菜单数据生成无限级分类@param array $list 数据@param string $pk 主键ID@param string $pid 父ID@param string $son 子级字段@param int $root 根节点@return arrayprotected function tree($list, $pk, $pid, $son, $root) { $tree=array(); foreach ($list as $data) { if ($data[$pid]==$root) { $children=$this->tree($list, $pk, $pid, $son, $data[$pk]); if (!empty($children)) { $data['children']=$children; } $tree[]=$data; } } return $tree;}
/** * 生成无限级分类 * @param $list 数据 * @param string $pk 主键ID * @param string $pid 子ID * @param string $son 子级字段 * @param int $root * @return array */ protected function tree($list, $pk = 'id', $pid = 'pid', $son = 'son', $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]][$son][] = &$packData[$key]; } } return $tree; }

