Я согласен с другими авторами, что вы уже делаете это правильно.Однако в подобных ситуациях вы можете попытаться преобразовать $grade
в значение, которое можно использовать в качестве индекса в ассоциативном массиве, мало чем отличаясь от того, что @ ghostdog74 пытался сделать выше.
$gradeindex = (int)$grade / 10; // 10 since we want 10-19 = 1, etc..
$gradenames = array('10' => 'A+', '9' => 'A', '8' => B, ..... );
Однакопоскольку многие из них идентичны, я бы, вероятно, использовал switch()
$gradeindex = (int)$grade / 10; // 10 since we want 10-19 = 1, etc..
switch ($gradeindex) {
case 10:
case 9:
$gradename = 'A';
break;
case 8:
$gradename = 'B';
break;
case 7:
$gradename = 'C';
break;
default:
$gradename = 'Failed';
}
echo $gradename;
Но, как уже говорилось, вы в основном лучше с вашим текущим утверждением if
.