如何将具有父子关系的数据库表转换为多维数组 [英] How to convert DB table with parent son relation to multi-dimensional array

查看:45
本文介绍了如何将具有父子关系的数据库表转换为多维数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何转换这样的数据库表:

How can I convert a database table like that:

变成这样的多维数组?

我尝试了如下所示的递归循环,但无法正确显示.

I tried a recursive loop like below but can't get it to display properly.

function cost_centres_format($items)
{
    foreach ($items as $item) {
        echo $item->name.' - '.$item->parent_id;
        echo '<br/>';
        $sons = $this->purchase_order_model->get_cost_centre_sons($item->internal_purchase_order_cost_centre_id);
        if(count($sons)>0){
            $this->cost_centres_format($sons);
        }
    }
}

推荐答案

上面的代码不是生成多维数组而是生成一维数组,如下所示:

The above code doesn't produce multidimensional array but instead one dimensional array like so :

Array
(
 [0] => stdClass Object
    (
        [internal_purchase_order_cost_centre_id] => 1
        [name] => Direct Expenses                                                                                                                                                                                                                                                
        [parent_id] => 0
    )

[1] => stdClass Object
    (
        [internal_purchase_order_cost_centre_id] => 4
        [name] => Vehicle Maintenance                                                                                                                                                                                                                                            
        [parent_id] => 1
    )

[2] => stdClass Object
    (
        [internal_purchase_order_cost_centre_id] => 9
        [name] => CN09 AKO                                                                                                                                                                                                                                                       
        [parent_id] => 4
    )

[3] => stdClass Object
    (
        [internal_purchase_order_cost_centre_id] => 10
        [name] => DY52 BYO                                                                                                                                                                                                                                                       
        [parent_id] => 4
    )

[4] => stdClass Object
    (
        [internal_purchase_order_cost_centre_id] => 14
        [name] => MX08 MVJ                                                                                                                                                                                                                                                       
        [parent_id] => 4
    )

[5] => stdClass Object
    (
        [internal_purchase_order_cost_centre_id] => 15
        [name] => YJ55 TXA                                                                                                                                                                                                                                                       
        [parent_id] => 4
    )

[6] => stdClass Object
    (
        [internal_purchase_order_cost_centre_id] => 5
        [name] => Diesel                                                                                                                                                                                                                                                         
        [parent_id] => 1
    )

[7] => stdClass Object
    (
        [internal_purchase_order_cost_centre_id] => 6
        [name] => Vehicle Rent                                                                                                                                                                                                                                                   
        [parent_id] => 1
    )

[8] => stdClass Object
    (
        [internal_purchase_order_cost_centre_id] => 11
        [name] => Vehicle Repair                                                                                                                                                                                                                                                 
        [parent_id] => 1
    )

[9] => stdClass Object
    (
        [internal_purchase_order_cost_centre_id] => 16
        [name] => CN09 AKO                                                                                                                                                                                                                                                       
        [parent_id] => 11
    )

[10] => stdClass Object
    (
        [internal_purchase_order_cost_centre_id] => 17
        [name] => DY52 BYO                                                                                                                                                                                                                                                       
        [parent_id] => 11
    )

[11] => stdClass Object
    (
        [internal_purchase_order_cost_centre_id] => 18
        [name] => MX08 MVJ                                                                                                                                                                                                                                                       
        [parent_id] => 11
    )

[12] => stdClass Object
    (
        [internal_purchase_order_cost_centre_id] => 19
        [name] => YJ55 TXA                                                                                                                                                                                                                                                       
        [parent_id] => 11
    )

[13] => stdClass Object
    (
        [internal_purchase_order_cost_centre_id] => 2
        [name] => Overheads                                                                                                                                                                                                                                                      
        [parent_id] => 0
    )

[14] => stdClass Object
    (
        [internal_purchase_order_cost_centre_id] => 12
        [name] => Internet Service                                                                                                                                                                                                                                               
        [parent_id] => 2
    )

[15] => stdClass Object
    (
        [internal_purchase_order_cost_centre_id] => 13
        [name] => Warehouse Rent                                                                                                                                                                                                                                                 
        [parent_id] => 2
    )

[16] => stdClass Object
    (
        [internal_purchase_order_cost_centre_id] => 3
        [name] => Capital                                                                                                                                                                                                                                                        
        [parent_id] => 0
    )

[17] => stdClass Object
    (
        [internal_purchase_order_cost_centre_id] => 7
        [name] => New Stock                                                                                                                                                                                                                                                      
        [parent_id] => 3
    )

[18] => stdClass Object
    (
        [internal_purchase_order_cost_centre_id] => 8
        [name] => New Vehicle                                                                                                                                                                                                                                                    
        [parent_id] => 3
    )

)

这篇关于如何将具有父子关系的数据库表转换为多维数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆