Dieser Artikel zeigt Ihnen hauptsächlich Beispiele für die rekursive Verarbeitung von Thinkphp, die Kategorien nach Ebene ausgibt. Ich hoffe, dass er Ihnen helfen kann.
1. Im Allgemeinen werden Kategorien in der Datenbank gespeichert und die Beziehung zwischen Kategorien wird durch parent_id identifiziert. In der Entwicklung ist es manchmal erforderlich, Kategorien entsprechend der Klassifizierungsebene anzuzeigen, wie unten gezeigt:
Verwenden Sie die rekursive Methode. Der Quellcode lautet wie folgt:
/** * * @param array $list 为一个二维数组,存放着所有的分类,包含的字段为(分类id,分类名,parent_id) * @param number $parent_id * @param number $level * @return Ambigous <multitype:, number> */ function find_level($list,$parent_id=0,$level=1){ foreach($list as $l){ if($l['parent_id']==$parent_id){ $l['level']=$level; $arr[]=$l; $child=$this->find_level($list,$l['cat_id'],$level+1); if(is_array($child)){ $arr=array_merge($arr,$child); } } } return $arr; }
Verwenden Sie bei der Verwendung einfach find_level($list) oder $this->find_level($list) entsprechend der tatsächlichen Situation
$list=M('category')->field('cat_id,cat_name,parent_id')->select(); $list=$this->find_level($list); $this->list=$list; $this->display();
Anzeigecode für Vordergrunddateien
<table> <foreach name="list" item="vo"> <tr> <td> <for start="1" end="$vo['level']"> </for> {$vo.cat_name}<br/> </td> </tr> </foreach> </table>
Die hier verwendete Syntax ist Thinkphp
Das obige ist der detaillierte Inhalt vonInstanzen nach Ebene klassifizieren und ausgeben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!