搜索
php - laravel的Baum怎么获得某一条记录的最终父类id
某草草
某草草 2017-06-06 09:54:07
[PHP讨论组]

譬如我想获得id为10的小黑猪的最终父类,在该表格中parent_id显示的是9,但我想获得的是5,请问有没有什么办法,或者说我想判断某一条记录是否属于该最终父类

某草草
某草草

全部回复(3)
高洛峰

做个递归查找,然后找出parent_id=null时的那个就可以了

仅有的幸福

有2种做法可以尝试:

  1. 把所有的id和parent_id查询出来,然后进行搜索,这样固定的sql语句可以进行缓存。

  2. 添加一个新字段root_id,用于记录根节点,这样就不需要搜索,直接查询即可,只是在插入的时候,需要查询一次。

漂亮男人
    $arr = array(
                array(
                    'id'        => 10,
                    'parent_id' => 9
                    ),
                array(
                    'id'        => 9,
                    'parent_id' => 5
                    ),
                array(
                    'id'        => 5,
                    'parent_id' => null
                    ),
        
        
        );
    function getParentId($arr, $id = 10) {
        foreach ($arr as $val) {
            if($val['id'] == $id) {
                if(!empty($val['parent_id'])) {
                    $id = $val['parent_id'];
                    getParentId($arr, $id);
                }else {
                    return $id;
                }
            }
        }
        return $id;
    }
    
    echo getParentId($arr, 10);
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号