• 技术文章 >后端开发 >PHP问题

    php如何高效找出所有下级

    尚2019-10-29 15:01:35原创1335

    PHP高效的取出所有下级:

    递归取出所有下级:

    <?php
     
    $data = [
    	[
    		'uid' => 1,
    		'username' => '155',
    		'parent_username' => '0'
    	],
    	[
    		'uid' => 2,
    		'username' => '186',
    		'parent_username' => '155'
    	],
    	[
    		'uid' => 3,
    		'username' => '189',
    		'parent_username' => '186'
    	],
    	[
    		'uid' => 4,
    		'username' => '188',
    		'parent_username' => '155'
    	],
    	[
    		'uid' => 5,
    		'username' => '187',
    		'parent_username' => '188'
    	],
    	[
    		'uid' => 6,
    		'username' => '1898',
    		'parent_username' => '146'
    	],
    ];
     
    /**
     * 获取所有下级
     * [getTree description]
     * @param  [type] $data            [description]
     * @param  string $parent_username [description]
     * @return [type]                  [description]
     */
    //有层次,返回所有下级数据
    function getTree($data, $parent_username = '0')
    {
        $arr = [];
    	foreach($data as $key => $val){
    		if($val['parent_username'] == $parent_username){
    			$val['children'] = getTree($data, $val['username']);
    			$arr[] = $val;
    		}
    	}
    	return $arr;
    }
     
    //无层次,仅返回id
    function getTree($data, $parent_username = '0', $is_first_time = true)
    {
        static $arr = [];
        if ($is_first_time) {
            $arr = [];
        }
        foreach ($data as $key => $val) {
            if ($val['parent_username'] == $parent_username) {
                $arr[]           = $val['uid'];
                getTree($data, $val['username'], false);
            }
        }
        return $arr;
    }
     
    echo '<pre>';
    print_r(getTree($data));
     
     
     
    ?>

    推荐:php服务器

    以上就是php如何高效找出所有下级的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php
    上一篇:php调用不同目录的类 下一篇:php从哪下载
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• php能不能跨域访问其他网页• php网页标题在哪里修改• php判断是否为空字符串• php求不大于n的质数
    1/1

    PHP中文网