今回は、無限分類を実現するための CMSPRESS について説明します (コード付き)。CMSPRESS が無限分類を実装するための注意事項 は何ですか? ここで実際のケースを見てみましょう。
超無限分類使いやすく、非常に効率的なコアコードは 10 行未満ですさらに、この分類の欠点と、より効率的でシンプルな無限分類方法を見つけたいです^_^
class Tool { static public $treeList = array(); //存放无限分类结果如果一页面有多个无限分类可以使用 Tool::$treeList = array(); 清空 /** * 无限级分类 * @access public * @param Array $data //数据库里获取的结果集 * @param Int $pid * @param Int $count //第几级分类 * @return Array $treeList */ static public function tree(&$data,$pid = 0,$count = 1) { foreach ($data as $key => $value){ if($value['Pid']==$pid){ $value['Count'] = $count; self::$treeList []=$value; unset($data[$key]); self::tree($data,$value['Id'],$count+1); } } return self::$treeList ; } }
&$data を使用します。 unset($data[$key]); と組み合わせたアドレスによるパラメーターの受け渡しにより、ループの数が減り、効率が数倍向上します
ソート前後のデータ構造は次のとおりです
tableソート前のデータ構造
id pid
1 0
2 0
3 1
4 3
ソート後のデータ構造
id pid count1 0 1
3 1 2
4 3 3
2 0 1
//默认列表 public function index() { $menu = M('Menu'); $list = $menu->order('Pid ASC,Morder DESC,Id ASC')->select(); $this->assign('List',Tool::tree($list)); $this->display(); }
| -- <{$vo.Name}>
thinkPHPフレームワークの自動入力原理と使用法の詳細な説明
以上がCMSPRESSは無制限の分類を実現(コードあり)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。