php的递归调用 不指定

Else , 2009/03/03 07:53 , 积累些,自己也写些 , Comments(1) , Reads(982) , Via Original
这个产生的值是一个多维数组,而我们在做模板的时候,而在模板上,最好能做一次就可以看到我们想要的效果,于是我们还要把这个多维数组,变成一个一维数组
  public function et_cat($pcatid=0)
  {
    global $db;  
    $query = $db->query("select id,pcatid,catname from ck_cat where pcatid=".$pcatid);  
  
    while($qs = $db->fetch_array($query))  
    {
      $tmp=array();
      $tmp=$this->et_cat($qs['id']);
    $qs['id']=$tmp;
    $arr[] = $qs;  
    }  
    return  $arr;  
  }



这个加了一个判断,要不输入的id可能就要为空
public function et_cat($pcatid=0)
  {
    global $db;  
    $query = $db->query("select id,pcatid,catname from ck_cat where pcatid=".$pcatid);  
  
    while($qs = $db->fetch_array($query))  
    {
      $tmp=array();
      $tmp=$this->et_cat($qs['id']);
      if($tmp)
      {
        $qs['id']=$tmp;
      }
    
    $arr[] = $qs;  
    }  
    return  $arr;  
  }



这个是晚上回来,弄的一个版本,跟我现在用的能结合起来


public function et_cat($pcatid=0)
  {
    global $db;  
    $query = $db->query("select id,pcatid,catname from ck_cat where pcatid=".$pcatid);  
  
    while($qs = $db->fetch_array($query))  
    {
      $tmp=array();
      $tmp=$this->et_cat($qs['id']);
      if($tmp)
      {
      $qs[$qs['id']]=$tmp;
      unset($tmp);
      }
  
    
    $arr[] = $qs;  
    }  
    return  $arr;  
  }



//这个产生的是一个一维数组,模板那里很好用
public function et_arr($table_name='ck_cat',$pcatid=0)
  {
    $mycat =array();
    global $db;  
    $query = $db->query("select * from $table_name where pcatid=".$pcatid);  
    while($qs = $db->fetch_array($query))  
    {
    $arr[] = $qs;  
    }
    if($arr)
    {
  foreach($arr as $sarr)
    {
    if($pcatid==$sarr['pcatid'])
    {
      
       $mycat[]=$sarr;  
       $mycat[count($mycat)-1]['indent']='    ';
       $tmp=array();
       $tmp=$this->et_arr($table_name,$sarr['id']);
       if($tmp)
       {
         foreach($tmp as $sarr2)
        {
          $mycat[] =$sarr2;
          $mycat[count($mycat)-1]['indent']=str_replace("├","",$mycat[count($mycat)-1]['indent']).'    ├';
        }
       }
       unset($tmp);
    }
    
    }
      
    }
    
    return  $mycat;  
  }
  
  
Else Email Homepage
2009/03/03 20:39
第三个把id当key
这样的效果就是可以层次分开!
好了,现在可以去做一维数组了,
我的后台也可以更新一下了!
如果是一维数组在模板上更好用,反正要用的是一行来做就是了
Pages: 1/1 First page 1 Final page
Add a comment

Nickname

Site URI

Email

Enable HTML Enable UBB Enable Emots Hidden Remember [Login] [Register]