Вообще, вопрос не привязан к php, а вообще к алоритму, но задача стоит решить эту задачку как можно меньшим количеством строчек кода и красиво.
Есть ассоциативный массив, полученный путём запроса к БД.
Т.е.
| uid | activity | work |
|-----|----------|-----------------|
| 1 | a | do something |
| 1 | b | read something |
| 2 | a | write something |
| 2 | b | blablabla |
| 2 | c | do something |
| 3 | a | read something |
| 3 | b | write something |
| 3 | c | blablabla |
Мне бы хотелось получить ассоциативный массив вот такого типа:
(1) => ((a, do something), (b, read something))
(2) => ((a, write something), (b, blablabla), (c, do something))
и так далее
Как это можно сделать?
И что делать, если в левой части не просто 1 или 2, а (1, type) или (1, type, stage)
Строка if(!isset($result[$id])) $result[$id] = []; не нужна - не обязательно предварительно создавать пустой массив, можно сразу добавлять $result[$id][] = $row;, никаких Notice: undefined index не будет