欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

foreach循环

程序员文章站 2022-05-05 13:53:56
...
        //获取格式化组合分类json数组        $class  =  $this->tclass->get_all_class($this->tbname);        $json_class = array();        $json_class2 = array();//怎么能让foreach这段无限循环?        foreach ($class as $key=>$value) {			  if($class[$key]['sonclass'] && $class[$key]['bclassid'] == 0) //如果有子分类            {                $json_class[$key]['id'] = $value['classid'];                $json_class[$key]['text'] = $value['classname'];                $son_arr = $this->tclass->get_son_class($value['sonclass'],$this->tbname);                foreach ($son_arr as $k=>$v) {                   $json_class1[$k]['id'] = $v['classid'];                   $json_class1[$k]['text'] = $v['classname'];                   }               $json_class[$key]['children'] = $json_class1;            }           else if($class[$key]['bclassid'] == 0)            {                $json_class2[$key]['id'] = $value['classid'];                $json_class2[$key]['text'] = $value['classname'];            }        }        $root_class = array('id'=>0,'text'=>'根栏目');   //根栏目数据        $json_class_data = array_merge($json_class,$json_class2); //合并分类数组        array_unshift($json_class_data,$root_class);  //插入数组到最前端        echo json_encode($json_class_data);


这段是输出分类的 怎么能让foreach无限循环呢? 现在只能输出父类和父下的一个子类,但子类也有子类就出不来了 怎么办?


回复讨论(解决方案)

这个你要写一个 寻找儿子的方法 然后发现他有儿子 就掉那个方法 ,至于数据怎么显示 看你自己了 。。。。。

参考下面的写法,表名改成自己的。

function countsubcat($pid){   $r=mysql_query("select count(bclassid) AS say from meskat where bclassid='$pid' limit 1");   $rw=mysql_fetch_array($r);   return $rw['say'];}function listmenu($pid = 0){   $res = mysql_query("select classid,classname,bclassid from meskat where bclassid='$pid'");   while($cat=mysql_fetch_array($res))   {     echo '
  • '; print''.$cat['classname'].''; if(countsubcat($cat['classid'])>0) { print'
      '; listmenu($cat['classid']); print'
    '; } echo '
  • '; }}echo '
      ';listmenu(0); //从一级分类开始echo '
    ';`
    相关标签: foreach循环