Maison >développement back-end >tutoriel php >exemple de code de menu d'arborescence php

exemple de code de menu d'arborescence php

怪我咯
怪我咯original
2017-07-10 14:03:403074parcourir

Cet article présente principalement le code du menu arborescent PHP basé sur la récursion. Il utilise une méthode récursive pour parcourir les nœuds pour construire un menu arborescent. C'est une technique très pratique. Les amis qui en ont besoin peuvent s'y référer

L'exemple de cet article décrit le code du menu arborescent PHP basé sur une implémentation récursive. Partagez-le avec tout le monde pour votre référence. La méthode spécifique d'implémentation est la suivante :

Lors du développement d'un site Web de commerce électronique, j'ai créé cette fonction pour afficher un menu arborescent, en utilisant la fonction de menu arborescent PHP implémentée de manière récursive. Le code spécifique est le suivant :

Le code est le suivant :

public function procCategory($sid,$pid){
$return = array();
$key = 0;
static $arr = array(); //分类级别参考数组
$sql =  "select cid,pcid,name from shop_goods_catalog where sid='{$sid}' and pcid = '{$pid}'";
$result = $this->db->query($sql);
 
while($row=$this->db->fetchArray($result)){
$nbsp = '';
if($row['pcid']==0){
$arr = array();
}
$arr[] = $row['pcid'];
//顶级分类不添加树形结构标识。
if($row['pcid']>0){
//根据分类级别添加树形结构标识
$key = array_search($row['pcid'],$arr);
for($i=0;$i<$key;$i++){
$nbsp .= &#39;  &#39;;
}
//重构分类级别参考数组
if(count($arr)>1&&count(array_keys($arr,$row[&#39;pcid&#39;]))>1){
$arr = array_slice($arr,0,$key+1);
}
}
$row[&#39;name&#39;] = $nbsp.$row[&#39;name&#39;];
$row[&#39;level&#39;] = $key; //分类级别,0为顶级分类,1为二级分类,用于样式设定或其他需求
$return[] = $row;
$r = $this->procCategory($sid,$row[&#39;cid&#39;]);
$return = array_merge($return,$r);
}
 
return $return;
}
En raison de l'efficacité relativement faible de la récursivité, n'utilisez pas ceci méthode si vous vous concentrez sur l’efficacité du programme. Ou améliorez cette méthode.

Ce qui suit est le code de l'arbre php

Infinite Category, les amis dans le besoin peuvent s'y référer.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn