2017-10-05 77 views
0

我想在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> 

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

回答

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); 

?>