Maison >développement back-end >tutoriel php >exemple de code de menu d'arborescence php
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 .= ' '; } //重构分类级别参考数组 if(count($arr)>1&&count(array_keys($arr,$row['pcid']))>1){ $arr = array_slice($arr,0,$key+1); } } $row['name'] = $nbsp.$row['name']; $row['level'] = $key; //分类级别,0为顶级分类,1为二级分类,用于样式设定或其他需求 $return[] = $row; $r = $this->procCategory($sid,$row['cid']); $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!