George
Новичок
Головоломка. Составление массива из массива
Здравствуйте уважаемые господа программисты
Решаю головоломку уже третий день. Решил вам подкинуть. Может кому будет интересно мозг поразмять и мне помочь
Суть следующая - есть массив с модулями такого вида:
и т.д. , как на картинке.
вы наверняка уже догадываетесь, что должно получится в итоге - многомерный, сложный массив.
если у какого-то модуля существует подмодуль -> значит создать в этом моделе массив modules и помещать туда эти подмодули и т.д.
вот, на чем я остановился.. ))
собственно искать ответ на конкретные такие задачки тяжеловато, если кому встречалось решение - ой как я буду благодарен.. 
предчувствие у меня - тут рекурсией попахивает...
Здравствуйте уважаемые господа программисты

Решаю головоломку уже третий день. Решил вам подкинуть. Может кому будет интересно мозг поразмять и мне помочь

Суть следующая - есть массив с модулями такого вида:
PHP:
[0]
[id] = 1
[subid] = 0
[1]
[id] = 2
[subid] = 1
[2]
[id] = 3
[subid] = 1
[3]
[id] = 10
[subid] = 11
вы наверняка уже догадываетесь, что должно получится в итоге - многомерный, сложный массив.
если у какого-то модуля существует подмодуль -> значит создать в этом моделе массив modules и помещать туда эти подмодули и т.д.
вот, на чем я остановился.. ))
PHP:
function do_modules_array($modules_db)
{
$result_modules_array = Array();
for($i=0; $i < count($modules_db); $i++) // перебирает основные модули
{
$result_modules_array[$i] = $modules_db[$i]; // добавил в массив основной модуль
for($n = $i+1; $n < count($modules_db); $n++) // перебираю оставшиейся
{
if($modules_db[$n]['submodule'] == $result_modules_array[$i]['id']) // если совпадает - перенести в подмодуль
{
$result_modules_array[$i]['modules'][] = $modules_db[$n];
}
}
}
return $result_modules_array;
}

предчувствие у меня - тут рекурсией попахивает...