博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【转载】无限级分类的简单实例
阅读量:5911 次
发布时间:2019-06-19

本文共 1715 字,大约阅读时间需要 5 分钟。

 

转载来源: 

 

//模拟一个分类数组$area = array(array('id'=>1,'name'=>'安徽','parent'=>0),array('id'=>2,'name'=>'海淀','parent'=>7),array('id'=>3,'name'=>'濉溪县','parent'=>5),array('id'=>4,'name'=>'昌平','parent'=>7),array('id'=>5,'name'=>'淮北','parent'=>1),array('id'=>6,'name'=>'朝阳','parent'=>7),array('id'=>7,'name'=>'北京','parent'=>0),array('id'=>8,'name'=>'上地','parent'=>2));/** *递归,查找子孙树 */function subtree($arr,$id=0,$lev=1) {    $subs = array(); // 子孙数组    foreach($arr as $v) {        if($v['parent'] == $id) {            $v['lev'] = $lev;            $subs[] = $v; // 举例说找到array('id'=>1,'name'=>'安徽','parent'=>0),            $subs = array_merge($subs,subtree($arr,$v['id'],$lev+1));        }    }    return $subs;}$tree = subtree($area,0,1);//string str_repeat ( string $input , int $multiplier )//返回 input 重复 multiplier 次后的结果。foreach($tree as $v) {    echo str_repeat(' |- ',$v['lev']),$v['name'],'
'; //str_repeat — 重复一个字符串}/** *结果 *//*|- 安徽|- |- 淮北|- |- |- 濉溪县|- 北京|- |- 海淀|- |- |- 上地|- |- 昌平|- |- 朝阳*//** *递归,求家谱树 */function familytree($arr,$id) { $tree = array(); foreach($arr as $v) { if($v['id'] == $id) {
// 判断要不要找父栏目 if($v['parent'] > 0) { // parnet>0,说明有父栏目 $tree = array_merge($tree,familytree($arr,$v['parent'])); } $tree[] = $v; // 以找到上地为例 } } return $tree;}print_r(familytree($area,8)); // 北京->海淀->上地echo "
";/** *迭代,求家谱树 */// 迭代,效率比递归高,代码也没多.// 找家谱树推荐用迭代function tree($arr,$id) { $tree = array(); while($id !== 0) { foreach($arr as $v) { if($v['id'] == $id) { $tree[] = $v; $id = $v['parent']; break; } } } return $tree;}print_r(tree($area,8));

 

你可能感兴趣的文章
【云图】如何设置支付宝里的家乐福全国连锁店地图?
查看>>
Linux查看用户登陆历史记录
查看>>
我的友情链接
查看>>
对于json_lib包的使用
查看>>
Docker Registry服务器部署配置
查看>>
scala可变长度参数(二)
查看>>
postgreSQl导数据
查看>>
老李分享:qtp自动化测试框架赏析-关键字自动化测试框架 2
查看>>
忙里偷闲 -- 工作随笔
查看>>
PowerManager Android 电源管理
查看>>
自定义PlantUML和C4Model的样式
查看>>
springboot报编译失败 Compilation failure
查看>>
Ubuntu下su模式认证失败的问题解决
查看>>
mysqld error(一)
查看>>
Javascript延时函数
查看>>
UML类图关系大全
查看>>
Ant编译Hadoop 1.0.3的eclipse-plugin插件包
查看>>
tensorflow开发环境搭建
查看>>
JDBCRealm Http Digest
查看>>
CentOS 7 网络配置
查看>>