注:这两种方法都是这张图
一:取出这个人下面的所有人,把他们存放在一个一维索引数组里。这个在上一篇博客有仔细说明,这里再说明一下:
代码如下:
<span style="font-size:18px;">public function userlist(){
$name="a3@qq.com";//找到这个人下面的所有人
$arr=$this->test2($name);
show_bug($arr);
echo count($arr);
$this->display();
}
//递归函数
public function test2($name,$result=array()){
global $result;
$list=M()->table('ot_user')->where(array('UE_accName'=>$name))->select();
//show_bug($list);die;
if (!empty($list)) {
foreach($list as $key=>$val){
$result[]=$val['ue_account'];
$this->test2($val['ue_account'],$result);
}
}
return $result;
}</span>
代码截图如下:
这个函数运行出来的效果如下:
二:取出这个人下面的所有人,把他们存放在一个二维关联数组里:
代码如下:
<span style="font-size:18px;"> public function _initialize(){
header('content-type:text/html;charset=utf-8');
//团队总数
$name='a3@qq.com';
$arr=$this->tuanduiNum($name);
show_bug($arr);
echo $num=count($arr);
$this->assign("duanduiNum",$num);
}
//获取所有总数
public function tuanduiNum($name){
//$base = $this->getTreeBaseInfo ( $_SESSION ['uname'] );
$base = $this->getTreeBaseInfo ($name);
//$znote = $this->getTreeInfo ( $_SESSION ['uname'] );
$znote = $this->getTreeInfo ($name);
$znote [] = $base;
return $znote;
}
//此方法用于ajax返回
/*public function getTree() {
$base = $this->getTreeBaseInfo ( $_SESSION ['uname'] );
$znote = $this->getTreeInfo ( $_SESSION ['uname'] );
$znote [] = $base;
//print_r($znote);die;
echo json_encode ( array ("status" => 0,"data" => $znote ) );
}*/
public function getTreeBaseInfo($id) {
if (!$id) return;
//$r = M("user")->where(array('UE_account' =>$id))->find ();
$r = M()->table('ot_user')->where(array('UE_account' =>$id))->find ();
if ($r)
return array (
"id" => $r ['ue_account'],
"pId" => $r ['ue_accname'],
"name" => $r ['ue_account'] . "[" .sfjhff($r['ue_check']).",". $r ['ue_truename'] . "," . $r ['ue_activetime'] . "]"
);
return;
}
public function getTreeInfo($id) {
static $trees = array ();
$ids = self::get_childs ( $id );
if (! $ids){
return $trees;
}
$_SESSION['user_jb']++;
foreach ( $ids as $v ) {
$trees [] = $this->getTreeBaseInfo ( $v );
$this->getTreeInfo ( $v );
}
return $trees;
}
public static function get_childs($id) {
if(!$id)
return null;
$childs_id = array ();
//$childs = M("user")->field ("UE_account")->where(array('UE_accName'=>$id))->select();
$childs = M()->table('ot_user')->field ("UE_account")->where(array('UE_accName'=>$id))->select();
foreach ( $childs as $v ) {
$childs_id [] = $v ['ue_account'];
}
if ($childs_id)
return $childs_id;
return 0;
}</span>
还有一个写在function.php里的函数
<span style="font-size:18px;">function sfjhff($r)
{
$a = array("未激活", "已激活");
return $a[$r];
}</span>
代码截图如下:
还有function.php里的一个函数;
运行后效果如下:
这就是他们之间的不同,第一个只是把这个人下面的所有人取出来放在一个一维索引数组里。
第二个则是把这个人下面所有人的详细信息取出来,放在一个二维关联数组里。根据不同需要采纳。
还有就是,第一个取出的不包含自己,第二个是包括自己的。