Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 具有级别详细信息的用户树视图结构_Php_Codeigniter_Binary Tree - Fatal编程技术网

Php 具有级别详细信息的用户树视图结构

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

我正在尝试创建用户的树状视图结构,每个用户将有2个子节点,我的代码完美地创建了树状视图,但我一直坚持获取级别信息

 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, 打破你的循环


希望这个建议对您有所帮助,您可以继续下去

谢谢