为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
PHP

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;
}

点击查看更多内容
11人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消