1 回答
TA贡献1852条经验 获得超1个赞
这样$result[$element['category']][] = $element;,您只需将具有相同类别的每个元素附加到数组中。相反,您想要的是合并它们。因此,在构建时$result您需要处理两种情况:如果$result-array 不包含您调用的类别$result[$element['category']] = $element;。如果它已经包含您将$element['jobs']-array附加到的类别$result[$element['category']]['jobs']。
看看array_key_exists(这里)和array_merge(这里)。您可以将它们用于您的情况:
$result = array();
foreach ($group as $element) {
if(array_key_exists($element['category'], $result)) {
$result[$element['category']]['jobs'] = array_merge($result[$element['category']]['jobs'], $element['jobs']);
}
else {
$result[$element['category']] = $element;
}
}
注意:这不会导致您在问题中指定的确切结构。在您的问题中,您指定$result应该是一个数组,其中包含每个类别的数字索引(即$result[0]等等)。在我的解决方案中,您有字母数字键,即$result['Professional Services / Consulting / Project Mgmt']. 但我认为后者才是你真正想要的。
- 1 回答
- 0 关注
- 94 浏览
添加回答
举报