疯狂编程网

  • 首页
  • 后端
    • GOLANG
    • PHP
  • 前端
  • 客户端
  • 服务器
  • AIGC
  • 开发工具
  • 代码人生
  • 关于本站
    • 联系我们
    • 免责声明
  1. 首页
  2. 后端
  3. PHP
  4. 正文

Erp系统常用递归,查类目树,查上级,查下级

2023年5月10日 259点热度 0人点赞 0条评论

1、无限极往上获取平台类目树信息

  数据结构:商品类目id《category_id,商品类目父id《parent_id

  数据需求:根据传入最低层类目id,获取所有上级类目信息(包含自己)

  代码如下:

 1     // 无限极往上获取平台类目树信息
 2     public function platformCategoryVerify($platform, $site_code, $platform_category_id, $tree)
 3     {
 4         $apCategories_info = ApCategories::where([['category_id' , $platform_category_id],['platform' , $platform],['site_code' , $site_code]])->first(['category_id', 'category_name', 'parent_id', 'level']);
 5         if(!empty($apCategories_info->category_id)){
 6             $tree[] = $apCategories_info->toArray();
 7             $tree = $this->platformCategoryVerify($platform, $site_code, $apCategories_info->parent_id, $tree); //此处加“$tree = ” 是递归的关键,不然会导致 $tree数组,被覆盖
 8         }
 9         return $tree;
10     }

2、无限极一次性,获取平台类目树信息

  数据结构:商品类目id《category_id,商品类目父id《parent_id

  数据需求:一次性传入整个类目列表,格式化输出,类目树结构,以字段为下级son

  代码如下:

 1     //无限极获取指定类目下所有类目
 2     protected function InfinitusCategory($category_list, $pid)
 3     {
 4         $tree = [];
 5         foreach($category_list as $key => $value){
 6             //父亲找儿子
 7             if($value['category_parent_id'] == $pid){
 8                 $value['son'] = $this->InfinitusCategory($category_list, $value['category_id']);
 9                 $tree[] = $value;
10                 unset($category_list[$key]);
11             }
12         }
13         return $tree;
14     }

 


-----END

影子是一个会撒谎的精灵,它在虚空中流浪和等待被发现之间;在存在与不存在之间....

标签: php
最后更新:2023年5月10日

大明

靠写代码养家的开发者。

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

COPYRIGHT © 2023 疯狂编程网. ALL RIGHTS RESERVED.

京ICP备2022013580号-1