评级系统 |显示单个变量的评级


Rating System | Display the ratings from a single variable

所以,我的问题非常向前,我有一个变量,每说 4,我需要将其转换为某种评级,非常简单(从 1 到 5)没有半星或任何东西。

我需要显示一个从一到五的数字的评级,所以如果我有 1,我将有一颗星,如果我有 5 颗星,我将有五颗星。我可以做一个for循环并显示图像,但我也需要显示空的(未评级的)星星。我不需要任何功能,所以你实际上不能评分,只显示评级。

所以因为有人问我试过什么,我什么都没试过,因为我不知道从哪里开始。

我可以这样做来根据我拥有的变量(这是一个从 1 -> 5 的数字)显示星星的数量:

<?php
$ratings = 3;
for( $i = 1; $i <= $ratings; $i++)
echo '<img src="some_image.png" />';
?>

就是这样,但是对于未评级的开始,我该怎么办,我该如何显示其余的空星直到五?

你可以像这样做一个嵌套的for循环:

$tranStars;
for($i=0;$i<5;$i++){
  if($i==0){
    for($j=0;$j<$rating;$j++){
      echo "<img src='yourFullStars.png'/>";
      $tranStars=$j;
    }
    $i=$tranStars;
  }
  echo "<img src='yourEmptyStars.png'/>";
}

或者你可以做两个单独的 for 循环:

for($i=0;$i<$rating;$i++){
  echo "<img src='yourFullStars.png'/>";
}
for($i=0;$i<5-$rating;$i++){
  echo "<img src='yourEmptyStars.png'/>";
}

。或者任何数量的东西,真的。

您已经显示了 3 颗填充的星星,所以您所要做的就是显示其余的未填充。如果您有:

$ratings = 3;                               // 3 filled stars
for ($i = 1; $i <= $ratings; $i++) {        // go through each star
    echo '<img src="filled.png" />';        // show it filled
}

然后你需要找出你是否还有更多:

$starsLeft = 5 - $ratings;                  // 2 stars left

如果是这样,则将其显示为空星:

if ($starsLeft > 0) {                       // if there are any more stars left
    for ($i = 1; $i <= $starsLeft; $i++) {  // go through each remaining star
        echo '<img src="empty.png" />';     // show it empty
    }
}