php递归无限极分类
2023-09-14 09:10:27 时间
递归无限级分类有几种形式,我这里仅仅举例比較经常使用的三种:
第一种:返回有排序的数组:
<?php $data = array( 1 => array( 'id' => 1, 'pid' => 0, 'user_name' => 'one', ), 2 => array( 'id' => 2, 'pid' => 1, 'user_name' => 'two', ), 3 => array( 'id' => 3, 'pid' => 1, 'user_name' => 'two', ), 4 => array( 'id' => 4, 'pid' => 2, 'user_name' => 'three', ), 5 => array( 'id' => 5, 'pid' => 2, 'user_name' => 'three', ), 6 => array( 'id' => 6, 'pid' => 5, 'user_name' => 'four', ), ); function genCate( $data, $pid = 0, $level = 0 ) { static $result = array(); $result = ($level == 0) ? array() : $result; $prefix = ($level == 0) ? '' : str_repeat( '-', $level ); foreach ( $data as $key => $row ) { if ( $row['pid'] == $pid ) { $row['user_name'] = $prefix . $row['user_name']; $result[] = $row['user_name']; genCate( $data, $row['id'], $level + 1 ); } } return $result; } echo '<pre>'; $result = genCate( $data ); print_r( $result ); exit; ?>
另外一种:返回html字符串形式:
function getTreeHtml( $data, $pId ) { $html = ''; foreach ( $data as $k => $v ) { if ( $v['pid'] == $pId ) { $html .= "<li>" . $v['user_name']; $html .= getTree( $data, $v['id'] ); $html = $html . "</li>"; } } return $html ? '<ul>' . $html . '</ul>' : $html; }
第三种:返回多维数组形式:
function getTreeArray( $data, $pId = 0 ) { $tree = array(); foreach ( $data as $key => $value ) { if ( $value['pid'] == $pId ) { $value['childrens'] = getTreeArray( $data, $value['id'] ); $tree[] = $value; } } return $tree; }
相关文章
- php://input allow_url_include,DVWA设置PHP函数allow_url_include:已禁用
- 【说站】企业级程序苏林加密系统 php加密的程序源码 sg11加密 xend加密 goto加密 Leave加密 enphp加密 NoName加密
- 微信小程序调用客服php接口实现回复消息详解程序员
- 测试MySQL触发器构建:PHP测试实例(mysql触发器php)
- 测试Linux下PHP应用的实现(linux测试php)
- 使用PHP执行Linux脚本:简单而快速!(php执行linux脚本)
- 在 Linux 中编译PHP程序(linux编译php)
- 打造高效网站:使用PHP和MySQL实现完美支持(phpmysql支持)
- 使用PHP实现Redis快速构建应用(redis实例php)
- PHP与MSSQL的快速无缝连接配置指南(php链接mssql配置)
- PHP如何访问MS SQL服务器(php怎么访问mssql)
- PHP搭配MSSQL营造完美环境联动(php加mssql环境)
- Linux下快速搭建PHP开发环境(linux php集成环境)
- PHP开启Redis扩展:极大提升网站性能(php开启redis扩展)
- Linux下编译安装PHP:一步步走向稳定性(linux编译安装php)
- 使用PHP连接Redis应用的指南(redis连接 php)
- PHP面向对象PHP5中的常量
- php递归实现无限分类生成下拉列表的函数
- php实现无限级分类实现代码(递归方法)
- 不重新编译PHP为php增加openssl模块的方法
- PHP和Mysqlweb应用开发核心技术第1部分Php基础-1开始了解php
- php入门学习知识点一PHP与MYSql连接与查询
- PHP学习笔记IIS7下安装配置php环境
- 数组与类使用PHP的可变变量名需要的注意的问题
- PHP与Java进行通信的实现方法
- php弹出对话框实现重定向代码
- PHP面向对象程序设计(oop)学习笔记(三)-单例模式和工厂模式
- PHP递归复制、移动目录的自定义函数分享
- php采用curl访问域名返回405methodnotallowed提示的解决方法
- PHP基于php_imagick_st-Q8.dll实现JPG合成GIF图片的方法
- PHP开发框架kohana3自定义路由设置示例
- 兼容ie6浏览器的php下载文件代码分享
- PHP中使用Imagick读取pdf并生成png缩略图实例