这篇文章给大家分享的是有关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;} //无层次,仅返回idfunction 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高效找出所有下级的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!