dox19458 2015-09-07 12:11
浏览 37
已采纳

以树结构显示数组

  1. I have an array ($select_categories) which loads categories from my categories table

  2. I want to display it in the following manner (as shown in the below image ...)

  3. Display 1st Level followed by 2 nd Level

DB DESIGN

Db conditions

is_parent : 0 ,0 ,0

is_child : PARENT_ID,0,0

is_sub_child : PARENT_ID ,CHILD_ID , 0

   Array
    (
        [0] => Array
            (
                [category_id] => 1
                [category_slug] => 
                [category_glyphicon] => fa fa-home fa-2x
                [category_name] => live
                [is_parent] => 0
                [is_child] => 0
                [is_sub_child] => 0
                [rf_flag] => 0
                [status] => 1
                [category_description] => 
                [created_on] => 2015-09-07 02:52:59
                [updated_on] => 2015-09-07 02:22:59
            )

        [1] => Array
            (
                [category_id] => 2
                [category_slug] => 
                [category_glyphicon] => fa fa-home fa-2x
                [category_name] => for sale
                [is_parent] => 1
                [is_child] => 0
                [is_sub_child] => 0
                [rf_flag] => 0
                [status] => 1
                [category_description] => 
                [created_on] => 2015-09-07 02:54:29
                [updated_on] => 2015-09-07 02:47:23
            )

        [2] => Array
            (
                [category_id] => 3
                [category_slug] => 
                [category_glyphicon] => fa fa-home fa-2x
                [category_name] => for rent
                [is_parent] => 1
                [is_child] => 0
                [is_sub_child] => 0
                [rf_flag] => 0
                [status] => 1
                [category_description] => 
                [created_on] => 2015-09-07 02:54:50
                [updated_on] => 2015-09-07 02:47:23
            )

        [3] => Array
            (
                [category_id] => 4
                [category_slug] => 
                [category_glyphicon] => fa fa-home fa-2x
                [category_name] => hostels
                [is_parent] => 1
                [is_child] => 0
                [is_sub_child] => 0
                [rf_flag] => 0
                [status] => 1
                [category_description] => 
                [created_on] => 2015-09-07 02:56:46
                [updated_on] => 2015-09-07 02:47:23
            )

        [4] => Array
            (
                [category_id] => 5
                [category_slug] => 
                [category_glyphicon] => fa fa-home fa-2x
                [category_name] => pg accomodation
                [is_parent] => 1
                [is_child] => 0
                [is_sub_child] => 0
                [rf_flag] => 0
                [status] => 1
                [category_description] => 
                [created_on] => 2015-09-07 02:57:37
                [updated_on] => 2015-09-07 02:47:23
            )

        [5] => Array
            (
                [category_id] => 6
                [category_slug] => 
                [category_glyphicon] => fa fa-home fa-2x
                [category_name] => villas
                [is_parent] => 1
                [is_child] => 2
                [is_sub_child] => 0
                [rf_flag] => 0
                [status] => 1
                [category_description] => 
                [created_on] => 2015-09-07 02:59:16
                [updated_on] => 2015-09-07 02:47:23
            )

        [6] => Array
            (
                [category_id] => 7
                [category_slug] => 
                [category_glyphicon] => fa fa-home fa-2x
                [category_name] => plot
                [is_parent] => 1
                [is_child] => 2
                [is_sub_child] => 0
                [rf_flag] => 0
                [status] => 1
                [category_description] => 
                [created_on] => 2015-09-07 02:59:40
                [updated_on] => 2015-09-07 02:47:23
            )

        [7] => Array
            (
                [category_id] => 8
                [category_slug] => 
                [category_glyphicon] => fa fa-home fa-2x
                [category_name] => Flats
                [is_parent] => 1
                [is_child] => 2
                [is_sub_child] => 0
                [rf_flag] => 0
                [status] => 1
                [category_description] => 
                [created_on] => 2015-09-07 03:00:03
                [updated_on] => 2015-09-07 02:47:23
            )

        [8] => Array
            (
                [category_id] => 9
                [category_slug] => 
                [category_glyphicon] => fa fa-home fa-2x
                [category_name] => houses
                [is_parent] => 1
                [is_child] => 2
                [is_sub_child] => 0
                [rf_flag] => 0
                [status] => 1
                [category_description] => 
                [created_on] => 2015-09-07 03:00:19
                [updated_on] => 2015-09-07 02:47:23
            )

        [9] => Array
            (
                [category_id] => 10
                [category_slug] => 
                [category_glyphicon] => fa fa-home fa-2x
                [category_name] => in house
                [is_parent] => 1
                [is_child] => 3
                [is_sub_child] => 0
                [rf_flag] => 0
                [status] => 1
                [category_description] => 
                [created_on] => 2015-09-07 03:00:57
                [updated_on] => 2015-09-07 02:47:23
            )

        [10] => Array
            (
                [category_id] => 11
                [category_slug] => 
                [category_glyphicon] => fa fa-home fa-2x
                [category_name] => appartment
                [is_parent] => 1
                [is_child] => 3
                [is_sub_child] => 0
                [rf_flag] => 0
                [status] => 1
                [category_description] => 
                [created_on] => 2015-09-07 03:01:19
                [updated_on] => 2015-09-07 02:47:23
            )

        [11] => Array
            (
                [category_id] => 12
                [category_slug] => 
                [category_glyphicon] => fa fa-home fa-2x
                [category_name] => boys
                [is_parent] => 1
                [is_child] => 4
                [is_sub_child] => 0
                [rf_flag] => 0
                [status] => 1
                [category_description] => 
                [created_on] => 2015-09-07 03:01:44
                [updated_on] => 2015-09-07 02:47:23
            )

        [12] => Array
            (
                [category_id] => 13
                [category_slug] => 
                [category_glyphicon] => fa fa-home fa-2x
                [category_name] => girls
                [is_parent] => 1
                [is_child] => 4
                [is_sub_child] => 0
                [rf_flag] => 0
                [status] => 1
                [category_description] => 
                [created_on] => 2015-09-07 03:01:58
                [updated_on] => 2015-09-07 02:47:23
            )

        [13] => Array
            (
                [category_id] => 14
                [category_slug] => 
                [category_glyphicon] => fa fa-home fa-2x
                [category_name] => work
                [is_parent] => 0
                [is_child] => 0
                [is_sub_child] => 0
                [rf_flag] => 0
                [status] => 1
                [category_description] => 
                [created_on] => 2015-09-07 03:03:48
                [updated_on] => 2015-09-07 02:47:23
            )

        [14] => Array
            (
                [category_id] => 15
                [category_slug] => 
                [category_glyphicon] => fa fa-home fa-2x
                [category_name] => jobs
                [is_parent] => 14
                [is_child] => 0
                [is_sub_child] => 0
                [rf_flag] => 0
                [status] => 1
                [category_description] => 
                [created_on] => 2015-09-07 03:04:32
                [updated_on] => 2015-09-07 02:47:23
            )

        [15] => Array
            (
                [category_id] => 16
                [category_slug] => 
                [category_glyphicon] => fa fa-home fa-2x
                [category_name] => government
                [is_parent] => 14
                [is_child] => 15
                [is_sub_child] => 0
                [rf_flag] => 0
                [status] => 1
                [category_description] => 
                [created_on] => 2015-09-07 03:04:48
                [updated_on] => 2015-09-07 02:47:23
            )

        [16] => Array
            (
                [category_id] => 17
                [category_slug] => 
                [category_glyphicon] => fa fa-home fa-2x
                [category_name] => private
                [is_parent] => 14
                [is_child] => 15
                [is_sub_child] => 0
                [rf_flag] => 0
                [status] => 1
                [category_description] => 
                [created_on] => 2015-09-07 03:07:09
                [updated_on] => 2015-09-07 02:47:23
            )

        [17] => Array
            (
                [category_id] => 18
                [category_slug] => 
                [category_glyphicon] => fa fa-home fa-2x
                [category_name] => company
                [is_parent] => 14
                [is_child] => 0
                [is_sub_child] => 0
                [rf_flag] => 0
                [status] => 1
                [category_description] => 
                [created_on] => 2015-09-07 03:08:30
                [updated_on] => 2015-09-07 02:47:23
            )

        [18] => Array
            (
                [category_id] => 19
                [category_slug] => 
                [category_glyphicon] => fa fa-home fa-2x
                [category_name] => construction
                [is_parent] => 14
                [is_child] => 18
                [is_sub_child] => 0
                [rf_flag] => 0
                [status] => 1
                [category_description] => 
                [created_on] => 2015-09-07 03:09:34
                [updated_on] => 2015-09-07 02:47:23
            )

        [19] => Array
            (
                [category_id] => 20
                [category_slug] => 
                [category_glyphicon] => fa fa-home fa-2x
                [category_name] => manufacturing
                [is_parent] => 14
                [is_child] => 18
                [is_sub_child] => 0
                [rf_flag] => 0
                [status] => 1
                [category_description] => 
                [created_on] => 2015-09-07 03:09:48
                [updated_on] => 2015-09-07 02:47:23
            )

        [20] => Array
            (
                [category_id] => 21
                [category_slug] => 
                [category_glyphicon] => fa fa-home fa-2x
                [category_name] => IT companies
                [is_parent] => 14
                [is_child] => 18
                [is_sub_child] => 0
                [rf_flag] => 0
                [status] => 1
                [category_description] => 
                [created_on] => 2015-09-07 03:10:37
                [updated_on] => 2015-09-07 02:47:23
            )

        [21] => Array
            (
                [category_id] => 22
                [category_slug] => 
                [category_glyphicon] => fa fa-home fa-2x
                [category_name] => Enjoy
                [is_parent] => 0
                [is_child] => 0
                [is_sub_child] => 0
                [rf_flag] => 0
                [status] => 1
                [category_description] => 
                [created_on] => 2015-09-07 03:10:51
                [updated_on] => 2015-09-07 02:47:23
            )

        [22] => Array
            (
                [category_id] => 23
                [category_slug] => 
                [category_glyphicon] => fa fa-home fa-2x
                [category_name] => cinemas
                [is_parent] => 22
                [is_child] => 0
                [is_sub_child] => 0
                [rf_flag] => 0
                [status] => 1
                [category_description] => 
                [created_on] => 2015-09-07 03:11:15
                [updated_on] => 2015-09-07 02:47:23
            )

        [23] => Array
            (
                [category_id] => 24
                [category_slug] => 
                [category_glyphicon] => fa fa-home fa-2x
                [category_name] => parks
                [is_parent] => 22
                [is_child] => 0
                [is_sub_child] => 0
                [rf_flag] => 0
                [status] => 1
                [category_description] => 
                [created_on] => 2015-09-07 03:11:33
                [updated_on] => 2015-09-07 02:47:23
            )

        [24] => Array
            (
                [category_id] => 25
                [category_slug] => 
                [category_glyphicon] => fa fa-home fa-2x
                [category_name] => adventures
                [is_parent] => 22
                [is_child] => 0
                [is_sub_child] => 0
                [rf_flag] => 0
                [status] => 1
                [category_description] => 
                [created_on] => 2015-09-07 03:12:06
                [updated_on] => 2015-09-07 02:47:23
            )

        [25] => Array
            (
                [category_id] => 26
                [category_slug] => 
                [category_glyphicon] => fa fa-home fa-2x
                [category_name] => studios
                [is_parent] => 22
                [is_child] => 0
                [is_sub_child] => 0
                [rf_flag] => 0
                [status] => 1
                [category_description] => 
                [created_on] => 2015-09-07 03:12:20
                [updated_on] => 2015-09-07 02:47:23
            )

        [26] => Array
            (
                [category_id] => 27
                [category_slug] => 
                [category_glyphicon] => fa fa-home fa-2x
                [category_name] => Study
                [is_parent] => 0
                [is_child] => 0
                [is_sub_child] => 0
                [rf_flag] => 0
                [status] => 1
                [category_description] => 
                [created_on] => 2015-09-07 03:12:48
                [updated_on] => 2015-09-07 02:47:23
            )

        [27] => Array
            (
                [category_id] => 28
                [category_slug] => 
                [category_glyphicon] => fa fa-home fa-2x
                [category_name] => schools
                [is_parent] => 27
                [is_child] => 0
                [is_sub_child] => 0
                [rf_flag] => 0
                [status] => 1
                [category_description] => 
                [created_on] => 2015-09-07 03:13:09
                [updated_on] => 2015-09-07 02:47:23
            )

        [28] => Array
            (
                [category_id] => 29
                [category_slug] => 
                [category_glyphicon] => fa fa-home fa-2x
                [category_name] => colleges
                [is_parent] => 27
                [is_child] => 0
                [is_sub_child] => 0
                [rf_flag] => 0
                [status] => 1
                [category_description] => 
                [created_on] => 2015-09-07 03:13:24
                [updated_on] => 2015-09-07 02:47:23
            )

        [29] => Array
            (
                [category_id] => 30
                [category_slug] => 
                [category_glyphicon] => fa fa-home fa-2x
                [category_name] => universities
                [is_parent] => 27
                [is_child] => 0
                [is_sub_child] => 0
                [rf_flag] => 0
                [status] => 1
                [category_description] => 
                [created_on] => 2015-09-07 03:14:01
                [updated_on] => 2015-09-07 02:47:23
            )

        [30] => Array
            (
                [category_id] => 31
                [category_slug] => 
                [category_glyphicon] => fa fa-home fa-2x
                [category_name] => move
                [is_parent] => 0
                [is_child] => 0
                [is_sub_child] => 0
                [rf_flag] => 0
                [status] => 1
                [category_description] => 
                [created_on] => 2015-09-07 03:14:40
                [updated_on] => 2015-09-07 02:47:23
            )

        [31] => Array
            (
                [category_id] => 32
                [category_slug] => 
                [category_glyphicon] => fa fa-home fa-2x
                [category_name] => airline
                [is_parent] => 31
                [is_child] => 0
                [is_sub_child] => 0
                [rf_flag] => 0
                [status] => 1
                [category_description] => 
                [created_on] => 2015-09-07 03:15:02
                [updated_on] => 2015-09-07 02:47:23
            )

        [32] => Array
            (
                [category_id] => 33
                [category_slug] => 
                [category_glyphicon] => fa fa-home fa-2x
                [category_name] => railway
                [is_parent] => 31
                [is_child] => 0
                [is_sub_child] => 0
                [rf_flag] => 0
                [status] => 1
                [category_description] => 
                [created_on] => 2015-09-07 03:15:24
                [updated_on] => 2015-09-07 02:47:23
            )

        [33] => Array
            (
                [category_id] => 34
                [category_slug] => 
                [category_glyphicon] => fa fa-home fa-2x
                [category_name] => road
                [is_parent] => 31
                [is_child] => 0
                [is_sub_child] => 0
                [rf_flag] => 0
                [status] => 1
                [category_description] => 
                [created_on] => 2015-09-07 03:15:40
                [updated_on] => 2015-09-07 02:47:23
            )

    )

enter image description here

I Tried something like this ...

$select_categories is the categories array

$select_categories = $this->category1_model->select_categories();

        $tree = array();
        foreach ($select_categories as $k => $arr) {

            $tree[$arr['category_id']] = $arr;
            $tree[$arr['category_id']]['is_child'] = array();
        }


        foreach ($tree as $k => &$new_a) {
            $parent = $tree[$k]['is_parent'];
            if(isset($tree[$parent])){
                $tree[$parent]['is_child'][] = & $tree[$k];
            }
        }

Need this way

live
    for sale
    for rent
    hostels
    pg accomodation


work
    jobs
    company

Enjoy
    cinemas
    parks
    adventures
    studios
Study
    schools
    colleges
    universities
move
    airline
    railway
    road
  • 写回答

1条回答 默认 最新

  • dpspn60064 2015-09-07 12:36
    关注

    Maybe you should try something usefull but inelegant like this to reorder your array :

    $result = array();
    foreach($array AS $k => $line) {
        if($line['is_child'] == 0) {
            $result[$k] => $line;
            foreach($array AS $k2 => $line2) {
                if($line2['is_child'] > 0 && $line2['is_child'] == $line['category_id']) {
                    $result[$k]['children'][$k2] = $line2;
                    foreach($array AS $k3 => $line3) {
                        if($line3['is_sub_child'] > 0 && $line3['is_sub_child'] == $line2['category_id']) {
                            $result[$k]['children'][$k2]['subchildren'][$k3] = $line3;
                        }
                    }
                }
            }
        }
    }
    

    Then, use a foreach in a foreach in a foreach ;)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 outlook无法配置成功
  • ¥15 Pwm双极模式H桥驱动控制电机
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换