此问题在此处已有答案:
Can't concatenate 2 arrays in PHP(11个答案)
昨天关门了。
这篇文章是6小时前编辑并提交审查的。
我不知道为什么这个问题被标记为重复,因为所谓的重复是关于使用array_merge
合并数组的-这个问题是关于组合数组中的元素树。
有没有一种方法可以在PHP数组中合并单个元素及其子树?例如,转换如下:
$test = array(
"EW" => array(313, 1788),
"SC" => array(670, 860),
"FR" => array(704, 709),
"UK" => array(423, 1733)
);
变成这样:
$test1 = array(
"UK" => array(313, 423, 670, 860, 1733, 1788),
"FR" => array(704, 709)
);
其中EW和SC的条目已与UK的条目合并。array_combine
和array_merge
似乎在数组之间工作,而不是在数组内部工作,所以我不清楚如何实现这一点。
3条答案
按热度按时间hof1towb1#
你必须为那些必须与另一个键(下面代码中的
$group_keys
)分组的键创建一个Map。输出:
wj8zmpe12#
一种方法是这样的:
结果是:
对于小的用例,你知道的关键,它不会改变这个方法是可以的...
798qvoo83#
函数{array_merge_trees}将接受一个数组,剪切出要合并的树并合并它们,从原始数组中删除它们,并将合并后的树连接到原始数组的剩余部分:
使用方法:
编辑:洪克的回答比这个好得多。