PHP、tp5、用递归获根据id获取所有的上级(包含本身和不包含本身两种)

本文介绍了如何在PHP TP5框架中使用递归方法获取一个ID对应的全部上级ID路径,包括包含和不包含本身两种情况。通过递归遍历,实现了从当前ID到顶级父级ID的完整链接。
/**
  * 获取栏目信息和每个栏目的父id集合
  * @return array
  */
        $catInfoAll = $this->getCatetList($shopId);  //获取分类集合(自己获取) 
        $arr = array_column($catInfoAll, null, 'id'); //这一步根据自己需求
        foreach ($arr as $key => &$value) {
            $subArr = $this->get_top_pid($arr, $value['id']);
            // TODO:包括本身的id,并且含有pid。 根据level,pid在前,本身id在最后
            $pidArr = array_column($subArr, 'id');
            $value['pidarr'] = $pidArr; //父id和本身 一维数组的形式
            $value['pidarrs'] = implode(',', $pidArr); //父id和本身集合的(字符串形式)
            
            // TODO:不包括本身的id,只取pid
	    // $pids = '';
	    // foreach ($subArr as $v) {
	    // 	if ($v['pid'] > 0) {
	    // 		$pids .= $v['pid'] . ',';
	    // 	}
	    // }
	    // $value['pids'] = rtrim($pids, ',');
        }


/**
  * 用递归获根据id获取所有的上级
  * @param $cate  分类集合
  * @param $id 分类的id
  * @return array
  */
    public function get_top_pid($cate,$id){
        $arr = [];
        foreach($cate as $v){
            i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值