この記事では、主に PHP で Infinitus 分類ツリーを実装する方法を紹介します。Infinitus 分類の原理と実装方法を例の形式で簡単に分析し、PHP の配列トラバースと判断関連の操作スキルを必要とする友人が参照できるようにします。詳細は次のとおりです:
現在の分類データベースの設計は基本的に次のとおりです: 各分類には主キー ID フィールドがあり、pid は親クラスの ID を指します。このようにして、無限レベルの分類を実現できます。取得されたデータは次の形式です:
$arr = array( array("id" => 1 , "pid" => 0 , 'cat' => '栏目一'), array("id" => 2 , "pid" => 0 , 'cat' => '栏目二'), array("id" => 3 , "pid" => 1 , 'cat' => '栏目三'), array("id" => 4 , "pid" => 2 , 'cat' => '栏目四'), array("id" => 5 , "pid" => 1 , 'cat' => '栏目五'), array("id" => 6 , "pid" => 5 , 'cat' => '栏目六'), array("id" => 7 , "pid" => 5 , 'cat' => '栏目七'), array("id" => 8 , "pid" => 6 , 'cat' => '栏目八'), array("id" => 9 , "pid" => 1 , 'cat' => '栏目九'), array("id" => 10 , "pid" => 0 , 'cat' => '栏目十'), array("id" => 11 , "pid" => 10 , 'cat' => '栏目十一'), array("id" => 12 , "pid" => 11 , 'cat' => '栏目十二'), array("id" => 13 , "pid" => 2 , 'cat' => '栏目十三'), array("id" => 14, "pid" => 13 , 'cat' => '栏目十四') );
あまり言うことはありません。処理コードに直接進みましょう:
//生成无限极分类树 function make_tree($arr){ $refer = array(); $tree = array(); foreach($arr as $k => $v){ $refer[$v['id']] = & $arr[$k]; //创建主键的数组引用 } foreach($arr as $k => $v){ $pid = $v['pid']; //获取当前分类的父级id if($pid == 0){ $tree[] = & $arr[$k]; //顶级栏目 }else{ if(isset($refer[$pid])){ $refer[$pid]['subcat'][] = & $arr[$k]; //如果存在父级栏目,则添加进父级栏目的子栏目数组中 } } } return $tree; }
テスト実行:
実行結果:
$cat = make_tree($arr); print_r($cat);
関連推奨事項:
無限分類ツリー構造を作成する方法
以上がPHPで無限分類木を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。