Функция, для рекурсивного перебора/построения дерева категорий

$data['my_menu'] = $this->recurMenu("",$module_info['my_menu']);

 
public function recurMenu($upid, $menu) {
$derevo = array();
foreach ($menu as $one) {
if (empty($one['parent'])) {
$one['parent'] = false;
}
if ($one['parent'] == $upid) {
$child = $this->recurMenu($one['label_id'], $menu);
if ($child) {
$one["child"] = $child;
}
$derevo[] = $one;
}
}
if (count($derevo) == 0) {
return false;
}
return $derevo;
}
 
пример массива
$menu =  array (
1 => array (
'item' => '111111111111111111',
'item_link' => '111111111111111111111111',
'item_id' => '1',
),
2 => array (
'item' => '22222222222222222222',
'item_link' => '222222222222222222',
'item_id' => '2',
),
3 => array (
'item' => '33333333333333333',
'item_link' => '33333333333333333',
'parent' => '2',
'item_id' => '3',
),
4 => array (
'item' => '444444444444444444',
'item_link' => '44444444444444444444',
'parent' => '3',
'item_enable' => '1',
'item_id' => '4',
)
);
 
САЙТ находится в разработке скачать модули можно вот здесь приносим свои извинения!