Php 重构关联数组中的重复数据
我得到了以下数据数组:Php 重构关联数组中的重复数据,php,associative-array,Php,Associative Array,我得到了以下数据数组: Array ( [0] => Array ( [id] => 1 [tag] => tag-a ) [1] => Array ( [id] => 1 [tag] => tag-b ) [2] => Array (
Array
(
[0] => Array
(
[id] => 1
[tag] => tag-a
)
[1] => Array
(
[id] => 1
[tag] => tag-b
)
[2] => Array
(
[id] => 4
[tag] => tag-a
)
)
如果存在重复的ID,我想重构标记
,因此其格式如下:
Array
(
[0] => Array
(
[id] => 1
[tags] => Array
(
[0] => tag-a
[1] => tag-b
)
)
[1] => Array
(
[id] => 4
[tags] => Array
(
[0] => tag-a
)
)
)
我已经能够通过循环一个“重复的报告”使某些东西工作起来。但是想知道是否有更有效的方法来实现这种阵列结构
key=>value
array)$result = array();
foreach ($array as $el) {
if (!isset($result[$id = $el['id']])) $result[$id] = array();
$result[$id][] = $el['tag'];
}
$result = array_map(
function ($id, $tags) { return array('id' => $id, 'tags' => $tags); },
array_keys($result), array_values($result)
);
如果您共享当前的方法,我们只能判断是否有一种“更有效的方法”(不过我猜测,在生成的数组中添加一个有意义的键会稍微优化一些)。