Anna Riekic
Anna Riekic

Reputation: 183

Better way of writing ratings php function

I've written this ratings function below and was wondering if it could be made smaller/simpler or better coded, it use shows an image based on percentage number within the function called

function rating( $number ) {

if ($number >= .0 && $number <= .099999) { 
  $star = '<img src="images/0.gif" alt="' . $number . '" />';
}

if ($number >= .10 && $number <= .199999){
  $star = '<img src="images/10.gif" alt="' . $number . '" />';
}

if ($number >= .20 && $number <= .299999){
  $star = '<img src="images/20.gif" alt="' . $number . '" />';
}

if ($number >= .30 && $number <= .399999){
  $star = '<img src="images/30.gif" alt="' . $number . '" />';
}

if ($number >= .40 && $number <= .499999){
  $star = '<img src="images/40.gif" alt="' . $number . '" />';
}

if ($number >= .50 && $number <= .599999){
  $star = '<img src="images/50.gif" alt="' . $number . '" />';
}

if ($number >= .60 && $number <= .699999) { 
  $star = '<img src="images/60.gif" alt="' . $number . '" />';
}

if ($number >= .70 && $number <= .799999){
  $star = '<img src="images/70.gif" alt="' . $number . '" />';
}

if ($number >= .80 && $number <= .899999){
  $star = '<img src="images/80.gif" alt="' . $number . '" />';
}

if ($number >= .90 && $number <= .999999){
  $star = '<img src="images/90.gif" alt="' . $number . '" />';
}

if ($number > .999999){
  $star = '<img src="images/100.gif" alt="' . $number . '" />';
}

return $star;
}

heres how it is used:

rating(0.51087)

Upvotes: 0

Views: 408

Answers (1)

Ry-
Ry-

Reputation: 225273

Sure, it just takes a little math.

function rating($number) {
    return '<img src="images/' . floor($number * 10) * 10 . '.gif" alt="' . $number . '" />';
}

Upvotes: 6

Related Questions