Ir para conteúdo
Fórum Script Brasil

Victor Hugo Soares

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Sobre Victor Hugo Soares

Victor Hugo Soares's Achievements

0

Reputação

  1. Bom, consegui resolver aqui sozinho, obrigado mesmo assim. Postarei aqui a solução, caso alguém mais passe por isso. O problema é que não joguei no return a chamada recursiva da função. Deveria ser assim: function buscaMenu( array $arrayMenu, $codMenu ){ $retorno = false; foreach ( $arrayMenu as $menu ){ if( $menu->menu == $codMenu ){ $retorno = $menu; return $retorno; } if( $menu->sub_menus ){ return buscaMenu( $menu->sub_menus, $codMenu ); } } }
  2. Eu estou montando um array de objetos para montar o menu da minha aplicação. No momento do erro este array está desta forma: $arrayMenu = Array( [0] => stdClass Object ( [tipo_menu] => 1 [menu] => 1 [descricao] => Home [tela] => 1 [icone] => fa-home [controlador] => Inicio [menu_mp] => [descricao_mp] => ) [1] => stdClass Object ( [tipo_menu] => 1 [menu] => 2 [descricao] => Agenda [tela] => 31 [icone] => fa-calendar [controlador] => Agenda [menu_mp] => [descricao_mp] => ) [2] => stdClass Object ( [menu] => 3 [descricao] => Cadastro [tela] => [icone] => [controlador] => [sub_menus] => Array ( [0] => stdClass Object ( [tipo_menu] => 1 [menu] => 4 [descricao] => Tipos de Usuários [tela] => 12 [icone] => fa-users [controlador] => TiposUsuarios [menu_mp] => 3 [descricao_mp] => Cadastro ) [1] => stdClass Object ( [tipo_menu] => 1 [menu] => 5 [descricao] => Usuários [tela] => 2 [icone] => fa-user [controlador] => Usuarios [menu_mp] => 3 [descricao_mp] => Cadastro ) [2] => stdClass Object ( [tipo_menu] => 1 [menu] => 6 [descricao] => Tipos de Menus [tela] => 4 [icone] => fa-list [controlador] => TiposMenus [menu_mp] => 3 [descricao_mp] => Cadastro ) [3] => stdClass Object ( [tipo_menu] => 1 [menu] => 12 [descricao] => Telas [tela] => 3 [icone] => [controlador] => Telas [menu_mp] => 3 [descricao_mp] => Cadastro ) [4] => stdClass Object ( [menu] => 13 [descricao] => Teste [tela] => [icone] => [controlador] => [sub_menus] => Array ( [0] => stdClass Object ( [tipo_menu] => 1 [menu] => 15 [descricao] => Teste 3 [tela] => 7 [icone] => fa-camera [controlador] => Teste [menu_mp] => 13 [descricao_mp] => Teste ) ) ) ) )) Rodo a função abaixo para encontrar o menu 13 e acrescentar mais submenus nele, porém não retorna corretamente, acaba imprimindo a linha com o comando echo '<br /> return false <br />'; Função: function buscaMenu( array $arrayMenu, $codMenu ){ $retorno = false; foreach ( $arrayMenu as $menu ){ if( $menu->menu == $codMenu ){ $retorno = $menu; return $retorno; } if( $menu->sub_menus ){ buscaMenu( $menu->sub_menus, $codMenu ); } } echo '<br /> return false <br />'; } Chamada da função: $menuPai = buscaMenu( $arrayMenu , 13 ); Porque, dá problema?
×
×
  • Criar Novo...