blackmind 1 Denunciar post Postado Outubro 1, 2009 Fala povo beleza? talvez seja a hora(pois esta tarde) mas to apanhando muito pra fazer essa logica, alguem pode me ajudar?? tenho a variavel $apm e tenho 8 tipos de comparacoes, $apm = 159 (valor randomico) $apm1 = 'valor ate 50 de apm' ; $apm 2= 'valor ate 100 de apm' ; $apm 3= 'valor ate 200 de apm' ; $apm 4= 'valor ate 300 de apm' ; $apm 5= 'valor ate 500 de apm' ; $apm 6= 'valor ate 600 de apm' ; $apm 7= 'valor ate 700 de apm' ; $apm 8= 'valor ate 800 de apm' ; entao tenho que pegar o valor da apm e COMPARAR com o MAIS PROXIMO e escrever o resultado, comecei fazendo algo do tipo if($apm < $apm1 || $apm < $apm2 || compara outra e tal.... || compara ||){ echo "../img/ico/status_1.gif"; } so que vo ter que fazer MUITOS IFS parece coisa de loco, acredito que alguem com uma logica melhor ou ate uma funcao melhor consiga facilitar meu trabalho Obrigado e abraco a todos Compartilhar este post Link para o post Compartilhar em outros sites
João Batista Neto 448 Denunciar post Postado Outubro 1, 2009 tenho a variavel $apm e tenho 8 tipos de comparacoes, entao tenho que pegar o valor da apm e COMPARAR com o MAIS PROXIMO e escrever o resultado, comecei fazendo algo do tipo if($apm < $apm1 || $apm < $apm2 || compara outra e tal.... || compara ||){ echo "../img/ico/status_1.gif"; } so que vo ter que fazer MUITOS IFS parece coisa de loco, acredito que alguem com uma logica melhor ou ate uma funcao melhor consiga facilitar meu trabalho Bom, no PHP você consegue utilizar variáveis variáveis, com elas você pode fazer essa comparação dentro de um loop for: <?php $apm = rand( 0 , 800 ); $apm1 = rand( 0 , 50 ); $apm2 = rand( 51 , 100 ); $apm3 = rand( 101 , 200 ); $apm4 = rand( 201 , 300 ); $apm5 = rand( 301 , 500 ); $apm6 = rand( 501 , 600 ); $apm7 = rand( 601 , 700 ); $apm8 = rand( 701 , 800 ); $total = 8; $ultimo = null; for ( $i = 1 ; $i <= $total ; $i++ ){ $atual = 'apm' . $i; //nome da variável cada iteração do loop terá um valor diferente, apm1, apm2 ... /** * Os dois $ no nome da variável é o que faz o PHP saber que você quer o conteúdo da variável com o * nome definido em $atual */ if ( $ultimo == null ) $ultimo = $$atual; /** * Se a diferença entre $apm e o $ultimo for maior que a diferença entre $apm e $atual, então o $atual * é o nosso kara e $ultimo recebe o valor dele */ elseif ( abs( $apm - $ultimo ) > abs( $apm - $$atual ) ) $ultimo = $$atual; } var_dump( $apm , $ultimo ); //Irá mostrar o $apm e o valor mais próximo dele http://us2.php.net/manual/en/language.variables.variable.php O uso de variáveis variáveis não é muito aconselhável devido a baixa legibilidade que em muitos casos pode causar bugs realmente difíceis de se localizar. A melhor opção nesse caso é utilizar uma matriz e armazenar os valores dentro dela, a lógica permanecerá exatamente a mesma porém você terá a vantagem de um desempenho melhor (uma vez que não precisará concatenar string para gerar um nome de variável) e uma legibilidade também maior. ;) Compartilhar este post Link para o post Compartilhar em outros sites