I've got the following results from a MySQL JOIN:
+------------+----------------+-----------+---------+
| session_id | session_name | user_name | user_id |
+------------+----------------+-----------+---------+
| 13 | Test session 1 | User 1 | 29 |
| 13 | Test session 1 | User 2 | 30 |
| 14 | test session 2 | User 1 | 31 |
| 14 | test session 2 | User 2 | 32 |
| 14 | test session 2 | User 3 | 33 |
| 14 | test session 2 | User 4 | 34 |
+------------+----------------+-----------+---------+
... that produces this PHP array:
Array
(
[0] => Array
(
[session_id] => 13
[session_name] => Test session 1
[user_name] => User 1
[user_id] => 29
)
[1] => Array
(
[session_id] => 13
[session_name] => Test session 1
[user_name] => User 2
[user_id] => 30
)
[2] => Array
(
[session_id] => 14
[session_name] => test session 2
[user_name] => User 1
[user_id] => 31
)
[3] => Array
(
[session_id] => 14
[session_name] => test session 2
[user_name] => User 2
[user_id] => 32
)
[4] => Array
(
[session_id] => 14
[session_name] => test session 2
[user_name] => User 3
[user_id] => 33
)
[5] => Array
(
[session_id] => 14
[session_name] => test session 2
[user_name] => User 4
[user_id] => 34
)
)
How can I process it into the following nested array by filtering the session_id duplicates?
Array
(
[0] => Array
(
[session_id] => 13
[session_name] => Test session 1
[user] => Array
(
[0] => Array
(
[user_name] => User 1
[user_id] => 29
)
[1] => Array
(
[user_name] => User 2
[user_id] => 30
)
)
)
[1] => Array
(
[session_id] => 14
[session_name] => test session 2
[user] => Array
(
[0] => Array
(
[user_name] => User 1
[user_id] => 31
)
[1] => Array
(
[user_name] => User 2
[user_id] => 32
)
[2] => Array
(
[user_name] => User 3
[user_id] => 33
)
[3] => Array
(
[user_name] => User 4
[user_id] => 34
)
)
)
)