获取用户树级别

时间:2017-10-05 15:17:25

标签: php activerecord yii2

我想在yii2中获得树的级别。树中的每个父用户都可以拥有无​​限数量的用户

->parent_user -->sub_user [1 level] --->sub_user [2 level] ---->etc [n level]

我如何获得关卡编号?
我的数据库结构id | name | parent_id
我的树输出代码

public function getArray(){
        $user = User::find()->all();
        $array = [];
        foreach($user as $u){
            $array[$u->user_id][] = $v;
        }
        return $array;
    }
public static function outTree($user_id){
        $array = self::getArray();
        if(isset($array[$user_id])){
            echo '<ul>';
            foreach($array[$user_id] as $v){
                echo '<li>'.$v->username.'</li>';
                self::outTree($v->id);
                }
                echo '</ul>

任何建议表示赞赏。谢谢!

1 个答案:

答案 0 :(得分:0)

<?php
function show_keys($ar, $i=1){ 

   echo "<table width='100%' border='1' bordercolor='#6699CC' cellspacing='0' cellpadding='5'><tr valign='top'>"; 

      foreach ($ar as $k => $v ) { 

         echo "<td align='center' bgcolor='#EEEEEE'> 
           <table border='2' cellpadding='3'><tr><td bgcolor='#FFFFFF'><font face='verdana' size='1'> 
              " . $i . " 
           </font></td></tr></table>"; 

           if (is_array($ar[$k])) { $i++;
              show_keys ($ar[$k],$i); 
         } 

         echo "</td>"; 

      } 

   echo "</tr></table>"; 

} 

// Multidimensional array -> 
$arvore = array(); 
$arvore['2'] = array(); 
$arvore['2']['22'] = array('2.1.1', '2.1.2', '2.1.3'); 
$arvore['2']['22'] = array('2.2.1', '2.2.2', '2.2.3'); 
$arvore['2']['22'] = array('2.3.1', '2.3.2', '2.3.3'); 

$arvore['2']['22']['222'] = array('3.1.1', '3.1.2', '3.1.3'); 
$arvore['2']['22']['222'] = array('3.2.1', '3.2.2', '3.2.3'); 
$arvore['2']['22']['222'] = array('3.3.1', '3.3.2'=>array('3.3.2.1', '3.3.2.2'), '3.3.3'); 
// <- 

show_keys($arvore); 

?>