Преобразовать атрибуты коллекции Laravel -> группа в группы -> атрибуты

У меня есть что-то вроде этого (список продуктов):

    $test = collect([
'test' => 'aa',
'attributes' => [
'height' => ['value'=>'100', 'group' => ['id'=>1, 'name'=>'size']],
'width' => ['value'=>'50', 'group' => ['id'=>1, 'name'=>'size']],
'color' => ['value'=>'blue', 'group' => ['id'=>2, 'name'=>'default']],
]
]);

и я хочу этот вывод:

[
'test' => 'aa',
'groups' => [
[
'id'=>1,
'name' => 'size',
'attributes' => [
'height' => ['value'=>'100'],
'width' => ['value'=>'50'],
]
],
[
'id'=>2,
'name' => 'default',
'attributes' => [
'color' => ['value'=>'blue'],
]
],
]
]

Я пытался с $test->map(function($t, $k) {/* here another map on attributes, loops, filters*/});

и всегда я получал «InvalidArgumentException» с сообщением «Обнаружена рекурсия». Любые идеи, как я могу это сделать?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …