微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php组数组多维最高第三级

如何解决php组数组多维最高第三级

数组subclmnsubclmn与另一个数组subclmnrd相关联subclmnclmn是clmn的rd .

1.阵列-C

Array
(
    [0] => Array
        (
            [sn] => 1
            [rd] => 2
            [cntnt] => Student
        )
[1] => Array
    (
        [sn] => 2
        [rd] => 2
        [cntnt] => Teacher
    )

[2] => Array
    (
        [sn] => 3
        [rd] => 3
        [cntnt] => Staff
    )

)

2.数组 -subclmn

Array
(
    [0] => Array
        (
            [sn] => 1
            [rd] => 1
            [clmn] => 1
            [cntnt] => Rabi
        )
[1] => Array
    (
        [sn] => 2
        [rd] => 2
        [clmn] => 1
        [cntnt] => Kiran
    )

[2] => Array
    (
        [sn] => 3
        [rd] => 3
        [clmn] => 1
        [cntnt] => Neharika
    )

)

3.数组 -subclmnsub

Array
(
    [0] => Array
        (
            [sn] => 1
            [rd] => 1
            [clmn] => 1
            [cntnt] => 90%
        )
[1] => Array
    (
        [sn] => 2
        [rd] => 2
        [clmn] => 1
        [cntnt] => 80%
    )

[2] => Array
    (
        [sn] => 3
        [rd] => 3
        [clmn] => 2
        [cntnt] => 70%
    )
[3] => Array
    (
        [sn] => 3
        [rd] => 3
        [clmn] => 2
        [cntnt] => 60%
    )

)

这里要求根据每个数组的clmn将数组分成三层。 Clmn 为顶级数组,subclmn 为二级数组,subclmnsub 为三级数组。

预期输出

Array
(
    [0] => Array
    (
        [sn] => 1
        [rd] => 2
        [cntnt] => Student
        [subclmn] => Array
            (
                [0] => Array
                    (
                        [sn] => 1
                        [rd] => 1
                        [cntnt] => Rabi
                        [subclmnsub] => Array
                            (
                                [0] => Array
                                    (
                                        [sn] => 1
                                        [rd] => 1
                                        [cntnt] => 90%
                                    )
                                [1] => Array
                                    (
                                        [sn] => 2
                                        [rd] => 2
                                        [cntnt] => 80%
                                    )
                            )
                        
                    )
                [1] => Array
                    (
                        [sn] => 2
                        [rd] => 2
                        [cntnt] => Kiran
                        [subclmnsub] => Array
                            (
                                [0] => Array
                                    (
                                        [sn] => 3
                                        [rd] => 3
                                        [cntnt] => 70%
                                    )
                                [1] => Array
                                    (
                                        [sn] => 4
                                        [rd] => 4
                                        [cntnt] => 60%
                                    )
                            )
                        
                    )
            )
    )
)

第一级循环使用 clmn 数组,在 clmn 中,另一个循环用于 subclmn,最后一个循环用于 subclmnsub

foreach($clmn AS $z=>$arr){
    $clmn_subclmn[] = $arr; 
    foreach($subclmn AS $y=>$subarr){
        if($arr['rd']==$subarr['clmn'] AND ($arr['typ']==2 OR $arr['typ']==3)){
            $clmn_subclmn[$z]['subclmn'][]=$subarr;
            foreach($subclmnsub AS $x=>$subarrsub){
                if($subarr['rd']==$subarrsub['clmn']){
                    $clmn_subclmn[$z]['subclmn'][$y]['subclmnsub'][]=$subarrsub;
                }
            }
        }
    }
}

但它只适用于第一个索引,而对于其他索引,它就搞砸了。为什么 kiran 的 subclmnsub 没有插入到 kiran 数组中?

与 foreach 循环相比,它更喜欢任何高效且快捷的方式。

Array
(
    [0] => Array
    (
        [sn] => 1
        [rd] => 2
        [cntnt] => Student
        [subclmn] => Array
            (
                [0] = Array
                    (
                        [sn] => 1
                        [rd] => 1
                        [cntnt] => Rabi
                        [subclmnsub] => Array
                            (
                                [0] => Array
                                    (
                                        [sn] => 1
                                        [rd] => 1
                                        [cntnt] => 90%
                                    )
                                [1] => Array
                                    (
                                        [sn] => 2
                                        [rd] => 2
                                        [cntnt] => 80%
                                    )
                            )
                        
                    )
                [1] => Array
                    (
                        [sn] => 2
                        [rd] => 2
                        [cntnt] => Kiran
                    )
                [3] => Array
                    (
                        [subclmnsub] => Array
                            (
                                [0] => Array
                                    (
                                        [sn] => 3
                                        [rd] => 3
                                        [cntnt] => 70%
                                    )
                                [1] => Array
                                    (
                                        [sn] => 4
                                        [rd] => 4
                                        [cntnt] => 60%
                                    )
                            )
                    )
            )
    )

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。