Define variable according to number-to-number

2

I have the following idea:

$quantidade = $rowcount;
if $quantidade (?) '(?)') {
$valor = '1';

I need to set the $ value by following:

de 100 a 499 = 1
de 500 a 999 = 2
de 1000 a 1499 = 3
de 1500 a 1999 = 4
de 2000 a 3999 = 5
acima de 4000 = quantidade*valor

Can anyone help me?

    
asked by anonymous 09.05.2018 / 15:21

3 answers

1

Thank you Inkeliz.

I ended up doing this:

switch($quantidade) {
    case ($quantidade <= '100'): {
        $valor = '1';
        break;
    }
    case ($quantidade <= '500'): {
....

 default: {
        $valor = $rowcount*valor;
    }
}
    
09.05.2018 / 17:39
4

You can use if and array , for example:

if($quantidade >= 4000){
    echo $quantidade * 0.03;
} elseif ($quantidade >= 100) {
    echo [1,2,3,4,5,5,5,5][(int)$quantidade/500];
}

If the number is greater than or equal to 4000 it will multiply by 0.03. If it is less than 4000 and greater than 100 it will get the array value, which is exactly 1 to 5.

    
09.05.2018 / 15:54
2

Just use if , which would have the same effect as your switch , only the code would probably be a bit smaller (no need for break case ):

$valor = <valor inicial aqui>;
$quantidade = $rowcount;

if ($quantidade >= 4000) {
    $valor = $quantidade * $valor;
} elseif ($quantidade >= 2000) {
    $valor = 5;
} elseif ($quantidade >= 1500) {
    $valor = 4;
} elseif ($quantidade >= 1000) {
    $valor = 3;
} elseif ($quantidade >= 500) {
    $valor = 2;
} elseif ($quantidade >= 100) {
    $valor = 1;
} else {
    die('O valor inserido é menor que 100');
}

echo $valor;

See it's even readable and simple to understand

    
09.05.2018 / 17:47