再帰実装に基づくPHPツリーメニューコード、再帰PHPツリーコード
この記事の例では、再帰的実装に基づいた PHP ツリー メニュー コードについて説明します。参考のためにみんなで共有してください。具体的な実装方法は以下の通りです
ECサイトを開発していた際、再帰的に実装したPHPのツリーメニュー機能を利用してツリーメニューを表示する機能を作りました。具体的なコードは次のとおりです:
コードをコピーします コードは次のとおりです:
public function procCategory($sid,$pid){
$return = array();
$key = 0;
static $arr = array() //分類レベル参照配列
;
$sql = "sid='{$sid}' および pcid = '{$pid}' である shop_goods_catalog から cid,pcid,name を選択します";
$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
$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 はスタイル設定またはその他のニーズに使用される 2 番目のレベルの分類です
$return[] = $row;
$r = $this->procCategory($sid,$row['cid']);
$return = array_merge($return,$r);
}
$return;
を返す
}
再帰の効率が比較的低いため、プログラムの効率を重視する場合は、この方法を使用しないか、この方法を改善してください。
この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。
http://www.bkjia.com/PHPjc/914057.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/914057.html技術記事再帰的実装に基づく PHP ツリー メニュー コード、再帰的 PHP ツリー コード この記事では、再帰的実装に基づく PHP ツリー メニュー コードについて説明します。参考のためにみんなで共有してください。具体的な実装方法…