我有一个二维数组,其中包含人名和语言标签。目标是按语言标签对所有名称进行分组
以下是此类数组的示例:
[
['name' => 'Ann', 'languages' => ['EN', 'FR']],
['name' => 'Bill', 'languages' => ['ES', 'CN']],
['name' => 'Jake', 'languages' => ['ES', 'FR']],
]
应将其转化为:
[
'EN' => ['Ann'],
'FR' => ['Ann', 'Jake'],
'ES' => ['Bill', 'Jake'],
'CN' => ['Bill']
]
这是我的按语言分组的代码。第一个问题是它添加了键 id。第二个我不确定php中是否有更好用的数组函数。
function groupByLang(array $array) {
$result = [];
foreach ($array as $person) {
foreach ($person['languages'] as $lang) {
$result[$lang][] = $person['name'];
}
}
return $result;
}
这是结果
[
'EN' => [0 => 'Ann'],
'FR' => [0 => 'Ann', 1 => 'Jake'],
'ES' => [0 => 'Bill', 1 => 'Jake'],
'CN' => [0 => 'Bill']
]
谁能帮我修复我的代码吗?提前致谢。
UPD 我想我的代码正在正常工作。然而我对这个索引感到困惑... UPD 2 修复了一个项目拼写错误。
江户川乱折腾