问题描述
数组subclmnsub
列clmn
与另一个数组subclmn
列rd
相关联subclmn
列clmn
是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 (将#修改为@)