无限级分类
2018-06-22 05:17:34来源:未知 阅读 ()
借用一位前辈的思路和风格,将代码整理在这里
<?php /** * 无限级分类 类 */ class Category{ /** * 返回一维数组 * @param [type] $cate 要递归的数组 * @param string $html 子级分类前要显示的缩进符号。默认 '─' * @param integer $pid 父级分类ID。默认为 0,表示顶级分类 * @param integer $level level级,配合 $html 显示足够的缩进。默认为 1,表示顶级分类 * @return [type] [description] */ static public function unlimitedForLevel($cate, $html = '─', $pid = 0, $level = 1){ $arr = array(); foreach($cate as $v){ if($v['pid'] == $pid){ $v['level'] = $level; $v['html'] = str_repeat($html, $level - 1); $arr[] = $v; $arr = array_merge($arr, $this->unlimitedForLevel($cate, $html, $v['id'], $level + 1)); } } return $arr; } /** * 返回多维数组 * @param [type] $cate 要递归的数组 * @param string $name 子级分类在父分类数组中的 key * @param integer $pid 父级分类ID。默认为0,表示顶级分类 * @return [type] [description] */ static public function unlimitedForlayer($cate, $name = 'child', $pid = 0){ $arr = array(); foreach($cate as $v){ if( $v['pid'] == $pid){ $v[$name] = self::unlimitedForlayer($cate, $name, $v['id']); $arr[] = $v; } } return $arr; } /** * 传递子分类ID返回所有父级分类 * @param [type] $cate 要递归的数组 * @param [type] $id 子分类ID * @return [type] [description] */ static public function getParents($cate, $id){ $arr = array(); foreach($cate as $v){ if($v['id'] == $id){ $arr[] = $v; $arr = array_merge(self::getParents($cate, $v['pid']), $arr); } } return $arr; } /** * 传递父级分类ID返回所有子分类ID * @param [type] $cate 要递归的数组 * @param [type] $pid 父级分类ID * @return [type] [description] */ static public function getChildrenId($cate, $pid){ $arr = array(); foreach($cate as $v){ if($v['pid'] == $pid){ $arr[] = $v['id']; $arr = array_merge($arr, self::getChildrenId($cate, $v['id'])); } } return $arr; } /** * 传递父级分类ID返回所有子级分类 * @param [type] $cate 要递归的数组 * @param [type] $pid 父级分类ID * @return [type] [description] */ static public function getChildren($cate, $pid){ $arr = array(); foreach($cate as $v){ if($v['pid'] == $pid){ $arr[] = $v; $arr = array_merge($arr, self::getChildren($cate, $v['id'])); } } return $arr; } } ?>
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 错误处理 2019-05-18
- 软件架构、IP、端口号、域名、网站分类 2019-05-17
- PHP在无限分类时注意的一些问题(不保证代码完全正确哦) 2019-05-13
- Php无限层级并显示层级数 2019-05-08
- php 无限极分类 2018-10-29
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash