所以,我的问题非常紧张,我有一个变量,每个说4,我需要将它转换为某种评级,非常简单(从1到5)没有半星或任何东西。
我需要显示一个从1到5的数字的评级,所以如果我有1,我将有一颗星,如果我有5,我将有5颗星。我可以做一个for循环并显示图像,但我还需要显示空(未评级)的星。我不需要任何功能,所以你不能实际评价,只显示评分。
因为有人在问我尝试过什么,所以我没有尝试任何东西,因为我不知道从哪里开始。
我可以根据我拥有的变量显示一些星星(这是1 - > 5的数字):
<?php
$ratings = 3;
for( $i = 1; $i <= $ratings; $i++)
echo '<img src="some_image.png" />';
?>
就是这样,但是对于非评级的开始我该怎么做,如何将其余的空星显示到五个?
答案 0 :(得分:3)
你可以这样做一个嵌套的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'/>";
}
......或任何数量的东西,真的。
答案 1 :(得分:2)
你已经展示了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
}
}