扫码关注官方订阅号
譬如我想获得id为10的小黑猪的最终父类,在该表格中parent_id显示的是9,但我想获得的是5,请问有没有什么办法,或者说我想判断某一条记录是否属于该最终父类
做个递归查找,然后找出parent_id=null时的那个就可以了
有2种做法可以尝试:
把所有的id和parent_id查询出来,然后进行搜索,这样固定的sql语句可以进行缓存。
添加一个新字段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中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
做个递归查找,然后找出parent_id=null时的那个就可以了
有2种做法可以尝试:
把所有的id和parent_id查询出来,然后进行搜索,这样固定的sql语句可以进行缓存。
添加一个新字段root_id,用于记录根节点,这样就不需要搜索,直接查询即可,只是在插入的时候,需要查询一次。