用 list 处理树状数据(邻接列表)
现有一个数组
$d = array(
array( '公告', 1, 0 ),
array( '文章', 2, 0 ),
array( '文章1', 3, 2 ),
array( '文章2', 4, 2),
array( '文章1评论', 5, 3 ),
array( '文章2评论', 6, 4 ),
array( '文章1评论1', 7, 3 ),
array( '文章1评论评论', 8, 5 ),
);
期望如下输出
公告
文章
文章1
文章1评论
文章1评论评论
文章1评论1
文章2
文章2评论

于是可以
foreach($d as $t) list($a[$pid][$id], $id, $pid) = $t;
得到
Array
(
[0] => Array
(
[1] => 公告
[2] => 文章
)

[2] => Array
(
[3] => 文章1
[4] => 文章2
)

[3] => Array
(
[5] => 文章1评论
[7] => 文章1评论1
)

[4] => Array
(
[6] => 文章2评论
)

[5] => Array
(
[8] => 文章1评论评论
)

)
可以看到,数据按第3列聚类了
于是再用一个递归函数就可实现数据的展示了
function foo($ar, $pid=0, $deep=0) {
foreach($ar[$pid] as $k=>$v) {
printf("%s%s\n", str_repeat(' ', $deep), $v);
if(isset($ar[$k])) foo($ar, $k, $deep+2);
}
}
调用 foo($a);
php list

分享到:


------解决方案--------------------
【后端开发】用 list 处置树状数据(邻接列表)版主是个大好人
------解决方案--------------------
【后端开发】用 list 处置树状数据(邻接列表)
斑竹对无限级树情有独钟。
每次看都有新收获。
------解决方案--------------------
【后端开发】用 list 处置树状数据(邻接列表)
------解决方案--------------------
前排 学习!
------解决方案--------------------
学习了。呵呵

------解决方案--------------------
【后端开发】用 list 处置树状数据(邻接列表)
------解决方案--------------------
原来是这样表现的。
------解决方案--------------------
真简洁,学习了。
------解决方案--------------------
写的不错啊,学习了
------解决方案--------------------
  static void Main(string[] args)
{
double a, b, c, p, h, area;
Console.Write("请输入三角形的边A: ");
string s = Console.ReadLine();
a = double.Parse(s);
Console.Write("请输入三角形的边B: ");
s = Console.ReadLine();
b = double.Parse(s);
Console.Write("请输入三角形的边C: ");
s = Console.ReadLine();
c = double.Parse(s);
if (a > 0 && b > 0 && c > 0 && a + b > c && a + c > b && b + c > a)
  • 微信
  • 分享
  • 【后端开发】用 list 处置树状数据(邻接列表)
  • 相关标签:nbsp array gt Console amp
  • 本文原创发布ki4网,转载请注明出处,感谢您的尊重!
    • 上一篇: smarty模板文件.tpl在写标签的样式设置的时候href属性值为什么写“javascript:”就能完成,这样写了如何实现的,就是样式设置的路径是如何读取的
    • 下一篇: 请教CSDN 的 ID 是怎么生成的

    相关文章

    相关视频

    • PHP如何安装和配置?
    • php 和 python 语法(部分)上的区别
    • PHP 随机数 C扩展随机数
    • PHP查询附近的人及其距离的实现方法_php技巧
    • 用 list 处置树状数据(邻接列表)
    • JavaScript中Array对象的属性和方法
    • JavaScript Array(数组)
    • Ruby 数组(Array)
    • C# 数组(Array)
    • PHP Array

    网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
  • 【后端开发】用 list 处置树状数据(邻接列表)
  • 立即提交

    专题推荐

    • 【后端开发】用 list 处置树状数据(邻接列表)独孤九贱-php全栈开发教程

      全栈 100W+

      主讲:Peter-Zhu 轻松幽默、简短易学,非常适合PHP学习入门

    • 【后端开发】用 list 处置树状数据(邻接列表)玉女心经-web前端开发教程

      入门 50W+

      主讲:灭绝师太 由浅入深、明快简洁,非常适合前端学习入门

    • 【后端开发】用 list 处置树状数据(邻接列表)天龙八部-实战开发教程

      实战 80W+

      主讲:西门大官人 思路清晰、严谨规范,适合有一定web编程基础学习

    作者信息 【后端开发】用 list 处置树状数据(邻接列表)

    ki4网

    认证0级讲师

    最近文章
    发布技术文章
    • 最新文章
    • 热门排行

      【后端开发】用 list 处置树状数据(邻接列表)

    • php利用mkdir()函数创建多级目录
    • PHP最强大的随机字符串生成函数
    • PHP中 stripslashes() 函数 和 addslashes() 函数
    • php递归经典案例
    • PHP二维数组按照指定的字段排序的函数
    • 聚合数据短信API服务接口PHP请求示例(附源码)
    • PHP自动加载机制介绍——spl_autoload_register()函数,php类自动加载
    • php判断从数据库查出的二维数组是否有重复值

      【后端开发】用 list 处置树状数据(邻接列表)

    • 最全最详细的PHP面试题(带有答案)
    • VPN是什么
    • PHP四大主流框架的优缺点总结
    • 详解PHPMyadmin的配置
    • php是什么文件?如何打开?四种打开php格式文件方法(图)
    • php如何解决中文乱码问题?
    • PHPstorm破解方法
    • PHP中使用CURL之php curl详细解析和常见大坑
    推荐视频教程
  • 【后端开发】用 list 处置树状数据(邻接列表)javascript初级视频教程
  • jquery 基础视频教程
  • 视频教程分类
    • php视频教程
    • html视频教程
    • css视频教程
    • JS视频教程
    • jQuery视频教程
    • mysql视频教程
    • Linux视频教程