ホームページ  >  記事  >  バックエンド開発  >  再帰的実装に基づく PHP ツリー メニュー コード、再帰的 PHP ツリー コード_PHP チュートリアル

再帰的実装に基づく PHP ツリー メニュー コード、再帰的 PHP ツリー コード_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:13:40971ブラウズ

再帰実装に基づく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 プログラミング設計に役立つことを願っています。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/914057.html技術記事再帰的実装に基づく PHP ツリー メニュー コード、再帰的 PHP ツリー コード この記事では、再帰的実装に基づく PHP ツリー メニュー コードについて説明します。参考のためにみんなで共有してください。具体的な実装方法…
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。