Home > Backend Development > PHP Tutorial > An in-depth analysis of the PHP Infinitus classification case tutorial, a brief analysis of the PHP case tutorial_PHP tutorial

An in-depth analysis of the PHP Infinitus classification case tutorial, a brief analysis of the PHP case tutorial_PHP tutorial

WBOY
Release: 2016-07-12 08:52:36
Original
751 people have browsed it

In-depth analysis of the PHP Infinitus classification case tutorial, brief analysis of the PHP case tutorial

In daily development, it is more or less inevitable to encounter Infinitus classification problems, because Issues such as efficiency and logic have always made this type of problem more acute. Today we use the yii2 framework as the basis and the column Infinitus as an example to conduct a simple treatment of this problem.

First we have a column data table tree

The table structure is as shown below (original text with pictures)

The table structure looks very simple.

Let’s insert some test data

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');
Copy after login

The tree structure is roughly as follows

|A
|--a
|----aa
|------aaa
|B
|--b

This is exactly the data structure form we need. Let’s see how to process it to get the required results.

As we said before, it is based on yii2, so our writing method also follows object-oriented rules

class tree { 
//访问index查看树形结构 
public function actionIndex () { 
$data = self::getTree(); 
//为了方便测试,我们这里以json格式输出 
\Yii::$app->response->format = \yii\web\Response::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; 
} 
}
Copy after login

Let’s visit tree/index and take a look. The rendering is as follows

In this way we can see a very clear tree structure diagram, which is what we ultimately need.

This is the case tutorial about PHP Infinitus classification. I hope it will be helpful to you!

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/1126071.htmlTechArticleAn in-depth analysis of the case tutorials of PHP Infinitus classification, and a brief analysis of the PHP case tutorials that are more or less indispensable in daily development Avoid encountering problems with Infinitus classification, because efficiency, logic and other issues have always been...
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template