这篇文章给大家分享的是有关php高效找出所有下级的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。
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高效找出所有下级的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。