Php 具有级别详细信息的用户树视图结构
我正在尝试创建用户的树状视图结构,每个用户将有2个子节点,我的代码完美地创建了树状视图,但我一直坚持获取级别信息Php 具有级别详细信息的用户树视图结构,php,codeigniter,binary-tree,Php,Codeigniter,Binary Tree,我正在尝试创建用户的树状视图结构,每个用户将有2个子节点,我的代码完美地创建了树状视图,但我一直坚持获取级别信息 public function treeView() { $this->load->view('header'); $leftArray=array('viewMode'=>'admin',"isLogin"=>$this->session->userdata('isUserLogin')); $t
public function treeView() {
$this->load->view('header');
$leftArray=array('viewMode'=>'admin',"isLogin"=>$this->session->userdata('isUserLogin'));
$this->load->view('left',$leftArray);
$alias="*";
$table="user";
$where=array("userId"=>$this->session->userdata('userId'));
$userDetails= $this->commonmodel->getData($alias,$table,$where);
$this->getTreeArray($userDetails[0]->userId, $this->stageCounter);
$treeArray = json_encode($this->globTreeArray);
//echo $this->stageCounter;exit;
//echo "<pre>";
//print_r($this->globTreeArray);
//exit;
$treeviewArray=array("treeArray"=>$treeArray,"userDetails"=>$userDetails[0]);
$this->load->view('treeView',$treeviewArray);
$this->load->view('footer');
}
public function getTreeArray($userId,$level) {
$childArray=array();
$alias="*";
$table="user_relationship";
$where=array("placementUserId"=>$userId);
$childRecords= $this->commonmodel->getData($alias,$table,$where);
foreach ($childRecords as $child){
$temp=array();
if($child->placementSide=='left'){
$childUserDetails=$this->getUserDetails($child->childUserId);
$temp[]="<div><img src='". base_url()."assets/img/default-avatar.png' width='80'/></div>".$childUserDetails->registrationCode."</br>".$childUserDetails->fullName;
$placementUserDetails=$this->getUserDetails($child->placementUserId);
$temp[]="<div><img src='". base_url()."assets/img/default-avatar.png' width='80'/></div>".$placementUserDetails->registrationCode."</br>".$placementUserDetails->fullName;
$temp[]=(string)$this->stageCounter;
$childArray[0]=$temp;
$this->globTreeArray[]=$temp;
}
if($child->placementSide=='right'){
$childUserDetails=$this->getUserDetails($child->childUserId);
$temp[]="<div><img src='". base_url()."assets/img/default-avatar.png' width='80'/></div>".$childUserDetails->registrationCode."</br>".$childUserDetails->fullName;
$placementUserDetails=$this->getUserDetails($child->placementUserId);
$temp[]="<div><img src='". base_url()."assets/img/default-avatar.png' width='80'/></div>".$placementUserDetails->registrationCode."</br>".$placementUserDetails->fullName;
$temp[]=(string)$this->stageCounter;
$childArray[1]=$temp;
$this->globTreeArray[]=$temp;
}
//if($level<=2)
//{
//echo $level."------".$childUserDetails->registrationCode."----------".$placementUserDetails->registrationCode."<br>";
if($this->hasChildren($childUserDetails->userId)==TRUE)
{
$this->stageCounter++;
$this->getTreeArray($childUserDetails->userId,$this->stageCounter);
}
else
{
$this->stageCounter--;
}
//}
}
//echo "<pre>";
//print_r($this->globTreeArray);
//exit;
return json_encode($this->globTreeArray);
}
公共函数树视图(){
$this->load->view('header');
$leftArray=array('viewMode'=>'admin','isLogin'=>$this->session->userdata('isUserLogin');
$this->load->view('left',$leftArray);
$alias=“*”;
$table=“用户”;
$where=array(“userId”=>$this->session->userdata(“userId”);
$userDetails=$this->commonmodel->getData($alias,$table,$where);
$this->getTreeArray($userDetails[0]->userId,$this->stageCounter);
$trearray=json_encode($this->globtrearray);
//echo$this->stageCounter;退出;
//回声“;
//打印($this->globtrearray);
//退出;
$treeviewArray=array(“trearray”=>$trearray,“userDetails”=>$userDetails[0]);
$this->load->view('treeView',$treeviewArray);
$this->load->view('footer');
}
公共函数getTreeArray($userId,$level){
$childArray=array();
$alias=“*”;
$table=“用户关系”;
$where=array(“placementUserId”=>$userId);
$childRecords=$this->commonmodel->getData($alias,$table,$where);
foreach($childRecords作为$child){
$temp=array();
如果($child->placementSide=='left'){
$childUserDetails=$this->getUserDetails($child->childUserId);
$temp[]=“.$childUserDetails->registrationCode.”“$childUserDetails->fullName;
$placementUserDetails=$this->getUserDetails($child->placementUserId);
$temp[]=“.$placementUserDetails->registrationCode.”“$placementUserDetails->fullName;
$temp[]=(字符串)$this->stageCounter;
$childArray[0]=$temp;
$this->globtrearray[]=$temp;
}
如果($child->placementSide=='right'){
$childUserDetails=$this->getUserDetails($child->childUserId);
$temp[]=“.$childUserDetails->registrationCode.”“$childUserDetails->fullName;
$placementUserDetails=$this->getUserDetails($child->placementUserId);
$temp[]=“.$placementUserDetails->registrationCode.”“$placementUserDetails->fullName;
$temp[]=(字符串)$this->stageCounter;
$childArray[1]=$temp;
$this->globtrearray[]=$temp;
}
//如果($levelregistrationCode。“-----------”$placementUserDetails->registrationCode。“
”;
如果($this->haschilds($childUserDetails->userId)==TRUE)
{
$this->stageCounter++;
$this->getTreeArray($childUserDetails->userId,$this->stageCounter);
}
其他的
{
$this->stageCounter--;
}
//}
}
//回声“;
//打印($this->globtrearray);
//退出;
返回json_encode($this->globtrearray);
}
正如我的代码所示,我需要在0位置子级、1位置父级和2位置级别编号中使用三个元素,您可以通过以下步骤实现您的目标
1) 取一个全局数组,比如说
$Leveldata=array()
2) 每次调用函数时,如果发现子函数,请将该数据推送到数组中
3) 一旦你拿到了你想要的关卡号码,比如说3,
打破你的循环
希望这个建议对您有所帮助,您可以继续下去 谢谢