<?php
$grades = array(
"PK",
"K",
"01",
"02",
"03",
"04",
"05",
"06",
"07",
"08",
"09",
"10",
"11",
"12"
);
function normalizeLexileScore($ability, $grade_level = null, $cast = false) {
if( $grade_level == null ) {
return $ability;
}
if ($cast) {
$grade_level = (int)$grade_level;
}
$grade_level = max(min($grade_level, 9), 2);
$gli_cap = array(NULL, NULL, 975, 1070, 1165, 1250, 1300, 1370, 1420, 1500);
$normalized = @min($ability, @$gli_cap[$grade_level]);
return $normalized;
}
foreach ($grades as $grade) {
$minBad = normalizeLexileScore(0, $grade, false);
$maxBad = normalizeLexileScore(2000, $grade, false);
$minGood = normalizeLexileScore(0, $grade, true);
$maxGood = normalizeLexileScore(2000, $grade, true);
printf("Grade %2s: Bad: %4d < %4d, Good: %4d < %4d\n", $grade, $minBad, $maxBad, $minGood, $maxGood);
}
preferences:
43.7 ms | 402 KiB | 5 Q