递归
来源:互联网 发布:襄阳网络广播电视台 编辑:程序博客网 时间:2024/05/23 15:06
<?php
$arr = array(
0=>array(
'cid'=>1,
'pid'=>0,
'name'=>'亚洲',
),
1=>array(
'cid'=>2,
'pid'=>0,
'name'=>'北美洲',
),
2=>array(
'cid'=>3,
'pid'=>1,
'name'=>'中国',
),
3=>array(
'cid'=>4,
'pid'=>2,
'name'=>'美国',
),
4=>array(
'cid'=>5,
'pid'=>3,
'name'=>'北京',
),
5=>array(
'cid'=>6,
'pid'=>3,
'name'=>'河北',
),
6=>array(
'cid'=>7,
'pid'=>5,
'name'=>'东城区',
),
7=>array(
'cid'=>8,
'pid'=>5,
'name'=>'海淀区',
),
);
function GetTree($arr,$pid,$step){
global $tree;
foreach($arr as $key=>$val) {
if($val['pid'] == $pid) {
$flg = str_repeat('└―',$step);
$val['name'] = $flg.$val['name'];
$tree[] = $val;
GetTree($arr , $val['cid'] ,$step+1);
}
}
return $tree;
}
$newarr = GetTree($arr, 0, 0);
print_r($newarr);
$arr = array(
0=>array(
'cid'=>1,
'pid'=>0,
'name'=>'亚洲',
),
1=>array(
'cid'=>2,
'pid'=>0,
'name'=>'北美洲',
),
2=>array(
'cid'=>3,
'pid'=>1,
'name'=>'中国',
),
3=>array(
'cid'=>4,
'pid'=>2,
'name'=>'美国',
),
4=>array(
'cid'=>5,
'pid'=>3,
'name'=>'北京',
),
5=>array(
'cid'=>6,
'pid'=>3,
'name'=>'河北',
),
6=>array(
'cid'=>7,
'pid'=>5,
'name'=>'东城区',
),
7=>array(
'cid'=>8,
'pid'=>5,
'name'=>'海淀区',
),
);
function GetTree($arr,$pid,$step){
global $tree;
foreach($arr as $key=>$val) {
if($val['pid'] == $pid) {
$flg = str_repeat('└―',$step);
$val['name'] = $flg.$val['name'];
$tree[] = $val;
GetTree($arr , $val['cid'] ,$step+1);
}
}
return $tree;
}
$newarr = GetTree($arr, 0, 0);
print_r($newarr);
阅读全文
0 0
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- phpstorm配置Apache服务器后,代码改变,页面不发生改变
- Linux基础之四
- Java实现app接口和Socket消息传递(7)eclipse-workspace发布到webapps
- 使用 : after与:befor伪类画贯穿线
- maven启动 cannot be cast to javax.servlet.Filter/cannot be cast to javax.servlet.Servlet 报错
- 递归
- js改变div的class属性
- 三代数据仓库的演进历程以及新一代数仓与区块链的关系
- Java_代码优化
- NOIP2017升天记
- 什么时候用GET,什么时候用POST?
- python模块学习(threading模块中的Event类)
- 《用python进行数据分析》语法要点总结(2)
- Android ExifInterface 图片信息 读取时中文乱码解决方案