kernelphp

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 1501|回复: 0

php递归获取所有下级

[复制链接]

45

主题

45

帖子

671

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
671
发表于 2019-9-28 22:37:24 | 显示全部楼层 |阅读模式
  1. <?php

  2. $data = [
  3.         [
  4.                 'uid' => 1,
  5.                 'username' => '155',
  6.                 'parent_username' => '0'
  7.         ],
  8.         [
  9.                 'uid' => 2,
  10.                 'username' => '186',
  11.                 'parent_username' => '155'
  12.         ],
  13.         [
  14.                 'uid' => 3,
  15.                 'username' => '189',
  16.                 'parent_username' => '186'
  17.         ],
  18.         [
  19.                 'uid' => 4,
  20.                 'username' => '188',
  21.                 'parent_username' => '155'
  22.         ],
  23.         [
  24.                 'uid' => 5,
  25.                 'username' => '187',
  26.                 'parent_username' => '188'
  27.         ],
  28.         [
  29.                 'uid' => 6,
  30.                 'username' => '1898',
  31.                 'parent_username' => '146'
  32.         ],
  33. ];

  34. /**
  35. * 获取所有下级
  36. * [getTree description]
  37. * @param  [type] $data            [description]
  38. * @param  string $parent_username [description]
  39. * @return [type]                  [description]
  40. */
  41. //有层次,返回所有下级数据
  42. function getTree($data, $parent_username = '0')
  43. {
  44.     $arr = [];
  45.         foreach($data as $key => $val){
  46.                 if($val['parent_username'] == $parent_username){
  47.                         $val['children'] = getTree($data, $val['username']);
  48.                         $arr[] = $val;
  49.                 }
  50.         }
  51.         return $arr;
  52. }

  53. //无层次,仅返回id
  54. function getTree($data, $parent_username = '0', $is_first_time = true)
  55. {
  56.     static $arr = [];
  57.     if ($is_first_time) {
  58.         $arr = [];
  59.     }
  60.     foreach ($data as $key => $val) {
  61.         if ($val['parent_username'] == $parent_username) {
  62.             $arr[]           = $val['uid'];
  63.             getTree($data, $val['username'], false);
  64.         }
  65.     }
  66.     return $arr;
  67. }

  68. echo '<pre>';
  69. print_r(getTree($data));



  70. ?>
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|kernelphp ( 陇ICP备15003130号-2 )

GMT+8, 2022-8-12 16:04 , Processed in 0.036639 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表