php无限分类的3种实现方法(总结)

来源:转载 发布时间:2018-10-15 15:13:50 阅读量:644

本篇文章给大家带来的内容是关于php无限分类的3种实现方法(总结),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

无限分类,是指从一个最高分类开始,每个子分类都可以分出自己的若干个子分类,可以一直分下去,称为无限级分类;

下面是对省市县的无限极分类的列子。数据库如图:

代码示例如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

/**

 * @Description: 无限极分类一

 * @Author: Yang

 * @param $data  数据库数据

 * @param int $parent_id   父级ID

 * @return array

 */

function getTree1($data, $parent_id = 0)

{

    $tree = array();

    foreach ($data as $k => $v) {

        if ($v["parent_id"] == $parent_id) {

            unset($data[$k]);

            if (!empty($data)) {

                $children = getCategory($data, $v["id"]);

                if (!empty($children)) {

                    $v["_child"] = $children;

                }

            }

            $tree[] = $v;

        }

    }

    return $tree;

}

 

 

/**

 * @Description: 无限极分类二

 * @Author: Yang

 * @param $data   数据库数据

 * @param int $parent_id  父级ID

 * @param int $level  等级

 * @return array

 */

function getTree2($data, $parent_id = 0, $level = 0)

{

    static $tree = array();

    foreach ($data as $k => $v) {

        if ($v["parent_id"] == $parent_id) {

            $v["level"] = $level;

            $tree[] = $v;

            getTree($data, $v["id"], $level + 1);

        }

    }

    return $tree;

}

 

/**

 * @Description: 无限分类三:面包屑导航

 * @Author: Yang

 * @param $data  数据库数据

 * @param $id    分类ID

 * @return array

 */

function getCrumbsBar($data, $id) {

    static $tree = array();

    foreach ($data as $k => $v) {

        if ($v["id"] == $id) {

            getCrumbsBar($data, $v["parent_id"]);

            $tree[] = $v;

        }

    }

    return $tree;

}


标签: PHP
分享:
评论:
你还没有登录,请先