我有以下数据:
Array
(
[0] => Array
(
[id] => 1
[tag] => tag-a
)
[1] => Array
(
[id] => 1
[tag] => tag-b
)
[2] => Array
(
[id] => 4
[tag] => tag-a
)
)
如果有重复的ID,我想重构tag
,所以它的格式如下:
Array
(
[0] => Array
(
[id] => 1
[tags] => Array
(
[0] => tag-a
[1] => tag-b
)
)
[1] => Array
(
[id] => 4
[tags] => Array
(
[0] => tag-a
)
)
)
我已经能够通过循环重复的报告来获得工作。但是想知道是否有更有效的方法来实现这种阵列结构?
答案 0 :(得分:0)
key => value
数组)。实现:
$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)
);