算法 - PHP根据路径数组转成一个目录树
本文介绍了算法 - PHP根据路径数组转成一个目录树的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
$paths = ['aa','aa/bb','ww/yyy','aa/kk','xx/oo/pp'];
根据这个数组,转成目录树的结构,如下:
aa
-bb
-kk
ww
-yyy
xx
-oo
--pp
解决方案
// 把这类数据转换成无限级格式...
$paths = ['aa','aa/bb/bb','ww/yyy/bb','aa/kk','xx/oo/pp'];
$data = [];
$id = 0;
foreach($paths as $path){
$tmps = explode('/', $path);
$parent = '';
foreach($tmps as $v){
$parentID = $parent == '' ? 0 : $data[$parent]['id'];
$parent .= $parent == '' ? $v : '/' . $v;
if( ! isset($data[$parent]) ){
$id++;
$tmp = array(
'id' => $id,
'parent_id' => $parentID,
'key' => $v,
'path' => $parent,
);
$data[$parent] = $tmp;
}
}
}
print_r($data);
// 再以无限级方式处理数据 $data
这篇关于算法 - PHP根据路径数组转成一个目录树的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文