Victor Hugo Soares Postado Junho 2, 2018 Denunciar Share Postado Junho 2, 2018 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? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Victor Hugo Soares Postado Junho 4, 2018 Autor Denunciar Share Postado Junho 4, 2018 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 ); } } } Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Victor Hugo Soares
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 =
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
Função:
Chamada da função:
Porque, dá problema?
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.