无限级分类三个重要的功能

释放双眼,带上耳机,听听看~!

1.面包屑
// 迭代,效率比递归高,代码也没多.
// 找家谱树推荐用迭代
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;//上帝  海定 北京
//return array_reverse($tree);北京 海定  上帝

}

2.用迭代法找子孙树
function subtree($arr,$parent=0) {
$task = array($parent); // 任务表
$tree = array(); // 地区表
while(!empty($task)) {
$flag = false;
foreach($arr as $k=>$v) {
if($v[‘parent’] == $parent) {
$tree[] = $v;
array_push($task,$v[‘id’]); // 把最新的地区id入任务栈
$parent = $v[‘id’];
unset($arr[$k]); // 把找到单元unset掉
$flag = true; //说明找到了子栏目

        }
    }
    if($flag == false) {
        array_pop($task);
        $parent = end($task);
    }

    //print_r($task);
}
return $tree;

}

print_r(subtree($area,0));

3./ 找子栏目
function findson($arr,$id) {
// $id栏目的儿子有些呢?
// 答:数组循环一遍,谁的parent值 等于 $id,谁就是他儿子
$sons = array(); // 子栏目数组
foreach($arr as $v) {
if($v[‘parent’] == $id) {
$sons[] = $v;
}
}
return $sons;
}

【转自慕课】https://www.imooc.com

PHP

[持续更新]PHP研发工程师技能图谱

2022-3-3 18:26:17

PHP

PHP不使用phpexcel导出

2022-3-3 18:26:47

搜索