我有一个数组$arr = [ 'parent' => [ 'CHILD' => [ 5,6 ], 'child' => [ 1,2,3,4 ], 'Child' => [ 5,6,7,8 ], ... ]];我想降低子键并组合每个具有相同不区分大小写键的子键$arr = [ 'parent' => [ 'child' => [ 1,2,3,4,5,6,7,8 ], ]];我试过array_change_key_case,它总是采用最后一个元素并忽略其他元素。一个数组可能有多个具有相同键的孩子(大小写不同)
1 回答
慕村225694
TA贡献1880条经验 获得超4个赞
试试下面的代码应该工作:
<?php
$arr = [
'parent' => [
'CHILD' => [
5,6
],
'child' => [
1,2,3,4
],
]
];
$arNew = [];
foreach ($arr as $sParent => $ar) {
foreach ($ar as $sChild => $ar1) {
$sChild = strtolower($sChild);
if (empty($arNew[$sParent][$sChild])) {
$arNew[$sParent][$sChild] = $ar1;
} else {
$arNew[$sParent][$sChild] = array_merge($arNew[$sParent][$sChild], $ar1);
}
}
}
print_r($arNew);
- 1 回答
- 0 关注
- 93 浏览
添加回答
举报
0/150
提交
取消