所以,我的问题非常向前,我有一个变量,每说 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
}
}