递归
来源:互联网 发布:kmp算法next计算例题 编辑:程序博客网 时间:2024/06/07 23:15
//laravel 框架
//->toArray(); json 转为array形式
//////////控制器中//////////
父级和子集不在同一张数据表
$data = DB::table('父级分类的表名')->get()->toArray(); //一级分类
foreach($data as $k=>$v){
$data[$k]->son = DB::table('子集分类的表名')->where(['子集和父级关联的字段'=>$v->id])->get()->toArray(); //二级分类
}
return view(html存放的文件夹名.文件名',['nav' => 1,'classCat' => $classCat]);
/*********************html页面*********************/
@foreach($classCat as $cat)
<ul>
<li>
@foreach($cat->son as $v)
@if(empty($v->son))
<a href="{{url('teaching?cat_id='.$cat->id.'&school_id='.$v->id)}}">{{$v->name}}</a>
@endif
@endforeach
</li>
</ul>
@endforeach
/******************************递归******************************/
/**
* 视图形递归
* @param $list
* @param int $pid
* @param int $level
* @param string $html
* @return array
*/
public static function tree(&$list,$pid=0,$level=0,$html=' '){
static $tree = array();
foreach($list as $v){
if($v['pid'] == $pid){
$v['sort'] = $level;
$v['html'] = str_repeat($html,$level);
$tree[] = $v;
self::tree($list,$v['id'],$level+1);
}
}
return $tree;
}
//多级递归
static function findSon($data,$pid){
$childs = [];
foreach($data as $v){
if($v['pid']==$pid){
//$arr[] = $v;
$childs[] = $v;
}
}
return $childs;
}
static function getSon($data,$pid){
$childs = self::findSon($data,$pid);
if(!$childs) return null;
foreach($childs as $k=>$v){
$res = self::getSon($data,$v['id']);
if($res!='')$childs[$k]['son'] = $res;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*****根据pid 实现的无限级分类*****/
/*
*$pid 父级的id
*$result 默认的参数
* $spac 前面的空格数量
*
*/
function getList (pid = 0,&$result = array(),$spac = 0){
$spac = $spac+4;
$row = "select * from 表名 where pid = $pid"; //查询分类
foreach($row ){
$row['字段名'] = str_repeat('&ndsp;').‘|--’.$rew['字段名'],
$result[] = $row;
getList($row['id'],$result,$spac);
}
return $result;
}
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- Multi-university 第十场 经验总结
- cas服务端配置
- 安装Nginx+Lua+OpenResty开发环境配置全过程实例
- 设计模式-单例模式
- mkdir: Permission denied: user=root, access=WRITE
- 递归
- 科大讯飞笔试题目
- idea中maven编译出错问题
- linux下g++链接动态库与静态库相关问题
- JMeter-配置元件-HTTP授权管理器
- iOS开发之小文件
- java 实现BufferedImage和ImageReader两种方式获取图片宽高、判断图片类型、获取图片大小工具类代码以及测试响应结果
- 《淘宝技术这十年》读书笔记
- 使用http请求,中文乱码问题--解决方法