无限极分类,传递一个子ID得到所有父集,用于在前台分层显示标题

本文介绍了一种使用PHP实现的递归方法,用于从给定的数据集中查找指定ID的所有上级元素。通过一个静态公共函数`getParents`,遍历数据集并返回指定ID元素的全部上级链。该方法采用递归调用自身的方式,直至找到顶级元素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法:

复制代码
static public function getParents($data,$id){
        $arr=array();
        foreach ($data as $v) {
            if ($v['id']==$id) {
                $arr[]=$v;
                $arr=array_merge(self::getParents($data,$v['pid']),$arr);
            }
        }
        return $arr;
    }
复制代码

调用:

复制代码
<?php
namespace Home\Controller;
use Think\Controller;
use Home\Clas\Cate;
class IndexController extends Controller {
    public function index(){
        $data=array(
                '0'=>array(
                        'id'=>1,
                        'pid'=>0
                    ),
                '1'=>array(
                        'id'=>2,
                        'pid'=>0
                    ),
                '2'=>array(
                        'id'=>3,
                        'pid'=>1
                    ),
                '3'=>array(
                        'id'=>4,
                        'pid'=>3
                    )
            );
        //$data=Cate::unlimitedForLevel($data);
        //$data=Cate::unlimitedForLayer($data);
        $data=Cate::getParents($data,4);
        echo '<pre>';
        print_r($data);die;
        echo '</pre>';
        $this->display();
            }
}
复制代码

效果:

原文:https://www.cnblogs.com/hltswd/p/5118601.html

转载于:https://www.cnblogs.com/ivy-zheng/p/11289255.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值