PHP: Foreach puanlama yardım

1 Cevap

Ben o puanları saatlik cevaplara dayalı bir test bu php var:

    $score_a = 0;

    foreach(array(4,5,10) as $a){
        if ($a >= 2 && $a <= 4) {
            $score_a += 1;
        } else if ($a > 4 && $a <= 8) {
            $score_a += 3;
        } else if ($a > 8) {
            $score_a += 0;
        }
    };

Biraz farklı skor ben son "if, else" gerekir. Bunun yerine değer> 8 ise bir kez 0,5 ekleyerek, ben 8 üzerindeki her tam sayı 0,5 eklemeniz gerekir.

Yani bu skoru 5 değil 4.5 olması gerekir.

1 Cevap

Sen gibi demek: $score_a += floor($a - 8) * .5;?

Öyle gibi kullanabilirsiniz:

foreach(array(4,5,10) as $a){
    if ($a >= 2 && $a <= 4) {
        $score_a += 1;
    } else if ($a > 4 && $a <= 8) {
        $score_a += 3;
    } else if ($a > 8) {
        $score_a += floor($a - 8) * .5;
    }
};