有一段时间没用过无限极分类,不巧今天又用到,所以特地去翻箱回顾以前。为了避免以后找起来麻烦,特地贴在这里。
<?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; } } ?>
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持小牛知识库!
本文向大家介绍php实现无限级分类,包括了php实现无限级分类的使用技巧和注意事项,需要的朋友参考一下 1.递归,查找子孙树 2.递归,求家谱树 家谱树的应用 ,如面包屑导航 首页 > 手机类型 > CDMA手机 > 公益PHP > 递归应用 2.迭代,求家谱树
本文向大家介绍PHP实现递归无限级分类,包括了PHP实现递归无限级分类的使用技巧和注意事项,需要的朋友参考一下 在一些复杂的系统中,要求对信息栏目进行无限级的分类,以增强系统的灵活性。那么PHP是如何实现无限级分类的呢?我们在本文中使用递归算法并结合mysql数据表实现无限级分类。 递归,简单的说就是一段程序代码的重复调用,当把代码写到一个自定义函数中,将参数等变量保存,函数中重复调用函数,直到达
本文向大家介绍php无限级分类实现方法分析,包括了php无限级分类实现方法分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php无限级分类实现方法。分享给大家供大家参考,具体如下: 1. 递归 2. 普通 更多关于PHP相关内容感兴趣的读者可查看本站专题:《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符
本文向大家介绍浅谈PHP无限极分类原理,包括了浅谈PHP无限极分类原理的使用技巧和注意事项,需要的朋友参考一下 1.递归:程序调用自身的编程技巧称为递归 2.案例: 3.global 4.static 5.说白了递归就是一个循环,用循环实现和递归实现是同样的效果。 以上所述是小编给大家介绍的PHP无限极分类原理详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也
本文向大家介绍PHP递归写入MySQL实现无限级分类数据操作示例,包括了PHP递归写入MySQL实现无限级分类数据操作示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP递归写入MySQL实现无限级分类数据操作。分享给大家供大家参考,具体如下: PHP递归写入MySQL无限级分类数据,表结构: 递归方法写入代码: 调用代码: 递归方法读取代码: 调用代码: 希望本文所述对大家PHP程
本文向大家介绍PHP实现无限极分类图文教程,包括了PHP实现无限极分类图文教程的使用技巧和注意事项,需要的朋友参考一下 一般来说实现无限极分类都是使用递归或者迭代的方式,小伙伴们看下本文的实现方式吧。 1,数据库设计: 2,代码: 3,效果图: 是不是很简单呢,小伙伴们可以直接拿去用哈,不收版权费^_^