简单的无限分类中递归子栏目

  1. <?php
  2. /*
  3. * 找子栏目
  4. */
  5. $area=array(
  6. array(‘id‘=>1,‘name‘=>‘中国‘,‘parent‘=>0),
  7. array(‘id‘=>2,‘name‘=>‘广东‘,‘parent‘=>1),
  8. array(‘id‘=>3,‘name‘=>‘深圳‘,‘parent‘=>2),
  9. array(‘id‘=>4,‘name‘=>‘湖南‘,‘parent‘=>1),
  10. array(‘id‘=>5,‘name‘=>‘长沙‘,‘parent‘=>4)
  11. );
  12. function findson($arr,$id=0) {
  13. $son=array();
  14. foreach ($arr as $value) {
  15. if ($value[‘parent‘]==$id) {
  16. $son[]=$value;
  17. }
  18. }
  19. return $son;
  20. }
  21. /*
  22. * 找子孙树
  23. * @param array 传入的数组
  24. * @param int  传入的id
  25. */
  26. function substree($arr,$id=0,$level=1) {
  27. static $grandson=array();
  28. foreach ($arr as $value) {
  29. if ($value[‘parent‘]==$id) {
  30. $value[‘level‘]=$level;
  31. $grandson[]=$value;
  32. substree($arr,$value[‘id‘],$level+1);
  33. }
  34. }
  35. return $grandson;
  36. }
  37. //var_dump( findson($area,1));
  38. echo  "</br>";
  39. //var_dump(substree($area,2));
  40. /*
  41. * 为了让它显示缩进效果
  42. */
  43. $tt=substree($area,0,1);
  44. foreach ($tt as $value) {
  45. echo str_repeat(‘  ‘, $value["level"]).$value["name"]."</br>";
  46. }
  47. ?>
时间: 2024-10-13 12:54:05

简单的无限分类中递归子栏目的相关文章

php中递归无限分类之-通过子栏目查找父栏目

<?php header("content-type:text/html;charset=utf8"); /*通过子栏目查找父栏目,范围小到范围大*/ $area = array( array('cat_id'=>1,'province'=>'福建省','parent_id'=>0), array('cat_id'=>2,'province'=>'龙岩市','parent_id'=>1), array('cat_id'=>3,'provi

无限极分类中递归查找一个树结构

问题:设计公司的员工表,员工有不同级别,要求可通过一个员工查到其下属的所有员工,也可查到其所属的上级. 解决:递归实现无限分类思想,每一个员工存入其所属的上级的id作为自己的pid,另外存入path,path包含自身id,方便显示路径. 递归的注意点: 1.一定有一个判断条件,否则递归就死循环了 2.每次的递归结果要保存起来,变量自增的实现三种方式: function(&$bar):通过引用地址 global :通过设置为全局变量 static :设置为静态变量 header( "Con

thinkphp 简单的无限分类实现

function getSonLists($upid=0,$space=''){ $icon = array( ' │', ' ├─', ' └─' ); //格式化的字符 $category_type = $this->category_type; $map['up_id'] = array('eq',$upid); // $map['id'] = array('neq',1); $lists = M('Category')->where($map)->field('id,catnam

无限分类 php 递归

//事例数组 public function index(){ $data =array( array('id' =>'1','name' =>'衣服', 'pid'=>0), array('id'=>'2', 'name' =>'上衣', 'pid'=>1), array('id'=>'3','name' =>'裤子', 'pid'=>1), array('id'=>'4', 'name' =>'鞋子', 'pid'=>0), ar

简单的无限分类树

<?php $d = array( array( name=>'公告','id'=>1,'pid'=>0), array( name=>'文章','id'=>2,'pid'=> 0), array( name=>'文章1','id'=>3, 'pid'=>2), array( name=>'文章2','id'=>4,'pid'=>2), array( name=>'文章1评论1','id'=>5,'pid'=>

深度实现session【包括session入库、session机制和session和cookie的使用方法,完善会话机制(在分布式机器中也能使用)】、无限分类的实现

1.session的注意点:@session_start();//这个配置需要注意,session开启中会有影响,所以使用错误抑制符进行限制[并且使用php.ini对session进行自动开启] session_start()前的输出问题:[session信息本身会增加到http头信息,也就是http主体不能在头前]对php.ini中的输出缓存进行配置,out_buffer的配置[注意:开启之后能够保证输出内容在脚本中缓存] [注意](1)脚本中session变量的键只能是字符串类型的[$_SE

php不用递归完成无限分类,从表设计入手完整演示过程

无限分类是什么就不废话了,可以用递归实现,但是递归从数据库取东西用递归效率偏低,如果从表设计入手,就很容易做到网站导航的实现,下面是某论坛导航,如下图 网上无限分类大多不全面,今天我会从设计表开始, 首先我们先做视图界面, <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>白超华-博客园</title> &

ecshop导航栏自动显示三级或多级子栏目,多级频道分类,并实现css高亮显示

ecshop导航要达到的目标: 一,比如上图,当我访问三级分类,响应式布局,这个栏目时,最顶级的元件这个分类,要高亮显示 二,如果导航上面有商品或文章频道, 并且他们有子栏目,则全自动显示所有的子栏目. 三,如果这个导航有子分类,则统一显示下拉三角标志. 代码如下 一,在includes/lib_main.php 文件中,修改掉或另外重命名并重定义一个这个get_navigator()函数,修改后的内容如下,另外get_categories_tree()这个函数为系统自带的在lib_goods.

递归无限分类笔记

最近项目都上线了每天巩固一下php知识,下面是关于递归无限分类的比较供大家参考! 数据库一个表就可以了,增加一个parendid字段 也就是子级分类 ,排序大家也可以加一下字段. CREATE TABLE `category` (   `id` int(11) NOT NULL,   `name` varchar(255) CHARACTER SET utf8 DEFAULT NULL,   `sort_order` int(11) DEFAULT NULL,   `parendid` int(