mropo 0 Denunciar post Postado Março 22, 2012 Boas, meu povo!! Seguinte Pessoal, Eu estou com um trabalho da faculdade pra fazer, de arvore binaria usando recursividade, problema que eu nao sou muito bom em programação. os arrays eu dei conta de fazer, agora só falta o mais dificil que é fazer a função pegar os dados dos nós folhas desta arvore. desenvolver uma função recursiva em que receba como entrada todos os elementos contidos em um array multidimensional e capture apenas os nós folhas, retornando uma lista desses elementos. <?php $trabalho = array( "Filiais" => array( "BSB" => array( "Gerentes" => array ( "joana", "Marcelo" ), "Supervisores" => array ( "Joao" ), ), "RJO" => array( "Gerentes" => array ( "Ricardo" ), "Analistas" => array( "Thiago" ) ) ) ); print_r($trabalho); ?> Com o uso dos dados do array acima, o retorno obtido após a aplicação da função nos dados deverá ser o array(“Joana”, “Marcelo”, “João”, “Ricardo”, “Thiago”). É isso aí grandes mestres, Parabéns aquele que der uma luz. abraço a todos. Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Março 22, 2012 Beleza, mas isso não é um Desafio para o iMasters. O propósito da sala de Desafios é um tema ser desenvolvido por vários programadores onde vence aquele cujo script rodar em menos tempo. E o próprio desafiante participa, postando sua versão do script. Existem diversas formas de se fazer isso. O conceito de recursividade implica no uso de funções onde caso uma condição seja cumprida, a própria função é invocada de novo, e de novo, e de novo, até que não caia mais nessa condição e o restante do código seja operado. A possibilidade mais simples ´: function minhaFuncao( $argumento ) { // Testo se o argumento é um array if( is_array( $argumento ) ) { // Se for, itero sobre ele... foreach( $argumento as $a ) { // .. invocando a própria função, porém usando o valor corrente da iteração minhaFuncao( $a ); } } else { // Se não for mais um array, faz alguma coisa com $argumento } } Tenta fazer você, afinal, se todo exercício serve para testar a capacidade individual de resolver problemas. Se eu resolver pra você, você não aprende :P Porém, esse seu caso em particular pode ser feito de outra forma sem uma estrutura de loop. Dá uma olhada nas Referências sobre Arrays e veja se descobre como (crédito extra). Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Março 25, 2012 :seta: array_walk_recursive :seta: Anonymous functions Funções anonimas estão disponíveis desde PHP 5.3.0 Exemplo: <?php $result = null; array_walk_recursive( $trabalho, function( $value ) use ( &$result ) { $result[ ] = $value; } ); var_dump( $result ); ?> Compartilhar este post Link para o post Compartilhar em outros sites