
看上去表结构很简单。
我们插入几条测试数据
INSERT INTO `tree` (`id`, `parent_id`, `name`) VALUES (1, 0, "A"), (2, 0, "B"), (3, 1, "a"), (4, 3, "aa"), (5, 2, "b"), (6, 4, "aaa");树形结构大致如下
class tree { //访问index查看树形结构 public function actionIndex () { $data = self::getTree(); //为了方便测试,我们这里以json格式输出 Yii::$app->response->format = yiiwebResponse::FORMAT_JSON; return $data; } //获取树 public static function getTree () { //这里我们直接获取所有的数据,然后通过程序进行处理 //在无限极分类中最忌讳的是对数据库进行层层操作,也就很容易造成内存溢出 //最后电脑死机的结果 $data = static::find()->all(); return self::_generateTree($data); } //生成树 private static function _generateTree ($data, $pid = 0) { $tree = []; if ($data && is_array($data)) { foreach($data as $v) { if($v["parent_id"] == $pid) { $tree[] = [ "id" => $v["id"], "name" => $v["name"], "parent_id" => $v["parent_id"], "children" => self::_generateTree($data, $v["id"]), ]; } } } return $tree; } }我们访问下tree/index看看,效果图如下
这样我们可以看到一个很清晰的树形结构图,也就是我们最终所需要的。
关于PHP无限极分类的案例教程就给大家介绍这么多,希望对大家有所帮助!