marxrtf 2 Denunciar post Postado Abril 23, 2016 Eu fiz e ele me retornou isso: Nota mais baixa: 0.00 Media: 0.00 array(5) { [0]=> NULL [1]=> NULL [2]=> NULL [3]=> NULL [4]=> NULL}Nota mais baixa: 0.00Media: 0.00 array(5) { [0]=> string(4) "1.00" [1]=> string(4) "7.00" [2]=> string(4) "7.00" [3]=> string(0) "" [4]=> string(0) ""}Nota mais baixa: 0.00Media: 3.75 array(5) { [0]=> NULL [1]=> NULL [2]=> NULL [3]=> NULL [4]=> NULL}Nota mais baixa: 0.00Media: 0.00 Compartilhar este post Link para o post Compartilhar em outros sites
marxrtf 2 Denunciar post Postado Abril 24, 2016 Fiz a modificação, mas mesmo assim ele continua a fazer a divisão por 4, mesmo tendo somente 3 notas lançadas array(5) { [0]=> string(4) "1.00" [1]=> string(4) "7.00" [2]=> string(4) "7.00" [3]=> NULL [4]=> NULL}Nota mais baixa: 0.00Media: 3.75 Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Tavares 167 Denunciar post Postado Abril 24, 2016 Certo... Agora use o array_filter e deverá funcionar. Compartilhar este post Link para o post Compartilhar em outros sites
marxrtf 2 Denunciar post Postado Abril 24, 2016 Então, isso já é com o array_filter e não funcionou Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Tavares 167 Denunciar post Postado Abril 24, 2016 Você precisa se habituar a ler o manual, amigo. <?php $n1 = 5.5; $n2 = 7.5; $n3 = 10; $n4 = NULL; $n5 = NULL; $notas = [ $n1, $n2, $n3, $n4, $n5 ]; $notas = array_filter( $notas, function( $nota ){ return !is_null( $nota ); } ); sort( $notas, SORT_NUMERIC ); $nota_mais_baixa = array_shift( $notas ); $media = array_sum( $notas ) / count( $notas ); printf( 'Nota mais baixa: %.2f<br>Media: %.2f', $nota_mais_baixa, $media ); Nota mais baixa: 5.50Media: 8.75 Compartilhar este post Link para o post Compartilhar em outros sites
marxrtf 2 Denunciar post Postado Abril 24, 2016 Muito obrigado Matheus. Me desculpe, não era o problema de ler o manual, era acertos dentro do meu código mesmo. E depois ainda fiquei confuso mas logo também acertei uma coisa. No seu exemplo você estava fazendo a divisão por duas notas, que eram a de 10 + 7.5 que na divisão deu 8.75, e descartando a 5.50. Quando na verdade deveria ser divido por 3. que seria 10+7.5+5.50 /3 = 7.66 A nota descartada deveria ser igual a 0.00. Não poderia ter nota descartada com valor no seu exemplo até ser lançada a recuperação. $n1 = 5.5;$n2 = 7.5;$n3 = 10;$n4 = NULL;$n5 = NULL; Bati a cabeça nisso também, então no caso para ele ir dividindo pelo número de notas lançadas e só descartar a menor nota após ser lançada a recuperação, que no exemplo é a $n5 O valor da $n5 não pode ser NULL. Então só as notas n1, n2, n3 e n4 podem ter seu valor NULL, sendo no exemplo ou no banco de dados, já a n5 tem que ser deixada com o campo em branco. Só deixei aqui a explicação para possíveis consultas futuras por outras pessoas. Agradeço muito sua ajuda Matheus. E também aos colegas que tentaram ajudar. Abraços. Compartilhar este post Link para o post Compartilhar em outros sites