PHP logra una representación ilimitada de datos de clasificación y clasificación

PHP realiza una representación de datos de clasificación infinita
. Probemos un estilo general, que se puede dividir en grados infinitos. Puede escribir estilos de acuerdo con sus propias necesidades. El principio es el mismo.
Inserte la descripción de la imagen aquí
Primero escriba los estilos deseados, depúrelos y haga comentarios para facilitar el php posterior Representar la estructura de datos directamente

			<!-- <div class="sub_item">
						<div class="sub_title">
							<a href="">顶级分类1</a>
							<span class="icon_box close">
								<img src="__CDN__/mobile/img/home/h34.png" class="icon_tri" title="下拉" title="下拉">
							</span>
						</div>
                        <div class="sub_item">
							<div class="sub_title">
								<a href="">二级分类1</a>
								<span class="icon_box">
									<img src="__CDN__/mobile/img/home/h34.png" class="icon_tri" title="下拉" title="下拉">
								</span>
							</div>
                            <div class="sub_item">
								<div class="sub_title">
									 <a href="">三级分类1</a>
								</div>
                            </div>
                        </div>
                        <div class="sub_item">
							<div class="sub_title">
								<a href="">二级分类2</a>
							</div>
                           
                        </div>
                    </div>
                    <div class="sub_item">
						<div class="sub_title">
							<a href="">顶级分类2</a>
							<span class="icon_box">
								<img src="__CDN__/mobile/img/home/h34.png" class="icon_tri" title="下拉" title="下拉">
							</span>
						</div>
			</div> -->

Luego, obtenga todas las matrices de datos de clasificación y reconstruya

 		//产品分类
        $pclass=Db::name('class')->select();//所有数据
        $items = array();
        foreach($pclass as $v){
    
    //构建一个新数组,新数组的key是自己的主键id
            $items[$v['id']] = $v;
        }
        $tree = array();
        foreach($items as $k => $item){
    
    //将已经重构的数组遍历,并判断当前数组元素的父级分类是否存在
            if(isset($items[$item['pid']])){
    
    
                $items[$item['pid']]['son'][] = &$items[$k];

            }else{
    
    
                $tree[] = &$items[$k];
            }
        }
	$mclassstr=$this->loopm($tree,0,'url/xxxx/xxx');//第三个参数,指点击分类跳转的页面链接
	$this->assign('mclassstr',$mclassstr);

A continuación, la estructura de clasificación escrita arriba se representa en un bucle.

public function loopm($class,$level,$url){
    
    
        $str='';
        if($level==0){
    
    
            foreach($class as $item){
    
    
                $str.='<div class="sub_item"><div class="sub_title"><a href="'.$url.$item['id'].'.html" target="_blank">'.$item['cname'].'</a>';
                if(isset($item['son']) && $item['son']){
    
    
                    $str.='<span class="icon_box"><img class="icon_tri" src="/mobile/img/home/h34.png" alt=""></span>';
                }
                $str.='</div>';
                if(isset($item['son']) && $item['son']){
    
    
                    $str.=$this->loopm($item['son'],$level+1,$url);
                }
				$str.="</div>";
            }
			
        }
        else if($level==1){
    
    
            foreach($class as $item){
    
    
				$str.='<div class="sub_item">';
                $str.='<div class="sub_title"><a href=">'.$url.$item['id'].'.html" target="_blank">'.$item['cname'].'</a>';
                if(isset($item['son']) && $item['son']){
    
    
                    $str.='<span class="icon_box"><img class="icon_tri" src="/mobile/img/home/h34.png" alt=""></span></div>';
                    $str.=$this->loopm($item['son'],$level+1,$url);
                }else{
    
    
					$str.="</div>";
				}
                $str.='<div>';
            }
        }
        else{
    
    
            $kongge='';
            for($i=0;$i<$level;$i++){
    
    
                $kongge.='&nbsp;';
            }
            foreach($class as $item){
    
    
				$str.='<div class="sub_item">';
                $str.='<div class="sub_title"><a href="'.$url.$item['id'].'.html" target="_blank">'.$item['cname'].'</a>';
                if(isset($item['son']) && $item['son']){
    
    
                    $str.='<span class="icon_box"><img class="icon_tri" src="/mobile/img/home/h34.png" alt=""></span></div>';
                    $str.=$this->loopm($item['son'],$level+1,$url);
                }else{
    
    
					$str.="</div>";
				}
                $str.='</div>';
            }
        }
        return $str;
    }

Finalmente, donde la página html necesita representar los datos, realice la representación

<div>
	{$mclassstr}
</div>

Supongo que te gusta

Origin blog.csdn.net/qq_36129701/article/details/107882289
Recomendado
Clasificación