php递归无限极分类
来源:互联网 发布:单片机开发系统pcb论文 编辑:程序博客网 时间:2024/05/09 05:23
递归无限级分类有几种形式,我这里只举例比较常用的三种:
第一种:返回有排序的数组:
<?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;}
1 0
- php递归无限极分类
- php 无限分类 递归
- PHP递归无限分类
- php 无限递归分类
- PHP递归实现无限极分类
- PHP递归实现无限极分类
- php 无限分类递归树形
- 递归无限极分类
- 递归无限极分类
- 递归无限极分类
- 递归-无限极分类
- 【php】php递归实现的无限分类
- PHP无限极分类技术(一)——递归无限分类原理
- PHP燕十八 课堂笔记------递归 无限极分类
- php之利用递归写无限极分类
- php 几种常用的递归 无限极分类
- php无限极分类
- PHP无限极分类
- 我只在乎你
- query.list和 query.iterator的方法的区别和优缺点
- ReactOS操作系统启动代码分析(I386架构)(2)
- day16 项目1客户信息系统
- 【中断异常】中断请求队列的初始化
- php递归无限极分类
- day17过滤器 禁止缓存中文乱码自动登录MD5加密url级别权限控制
- USACO/fence8 迭代加深搜索+剪枝
- PowerDesigner15 链接Oracle
- mahout 0.9 + hadoop 1.0.2 实现中文文本聚类
- Essential 银光仪表盘控件包Essential Gauge for Silverlight控件下载及介绍
- 优美的Fibonacci数列与矩阵
- 深入理解Java运行时数据区
- QT窗口:widget