如何解决如何按特定的子数组值对多维数组进行分组?
你需要将它们按 第一
使用 循环进入数组,检查级别是否与上一个项目相同,然后将其与该数组分组
$templevel=0;
$newkey=0;
$grouparr[$templevel]="";
foreach ($items as $key => $val) {
if ($templevel==$val['level']){
$grouparr[$templevel][$newkey]=$val;
} else {
$grouparr[$val['level']][$newkey]=$val;
}
$newkey++;
}
print($grouparr);
您也可以尝试
print($grouparr[7]);
将显示
[7] => Array (
[4] => Array (
[cust] => XT7434
[type] => standard
)
)
要么
print($grouparr[3]);
将显示
[3] => Array (
[2] => Array (
[cust] => XT8922
[type] => premier
)
[3] => Array (
[cust] => XT8816
[type] => permier
)
)
解决方法
我有一个多维数组,正在尝试根据特定列中的值将它们分组。
我正在尝试按分组level
,但实际上我不会事先知道该等级。因此,并不是像我可以将其放在for
循环中然后说那样while $i <
7
,因为我不知道这7
是级别键的最大值,并且坦率地说,即使我我不确定这也不是我需要这样做的方式。做了…
Array (
[0] => Array (
[cust] => XT8900
[type] => standard
[level] => 1
)
[1] => Array (
[cust] => XT8944
[type] => standard
[level] => 1
)
[2] => Array (
[cust] => XT8922
[type] => premier
[level] => 3
)
[3] => Array (
[cust] => XT8816
[type] => permier
[level] => 3
)
[4] => Array (
[cust] => XT7434
[type] => standard
[level] => 7
)
)
我希望产生的是:
Array (
[1] => Array (
[0] => Array (
[cust] => XT8900
[type] => standard
)
[1] => Array (
[cust] => XT8944
[type] => standard
)
)
[3] => Array (
[2] => Array (
[cust] => XT8922
[type] => premier
)
[3] => Array (
[cust] => XT8816
[type] => permier
)
)
[7] => Array (
[4] => Array (
[cust] => XT7434
[type] => standard
)
)
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。