d0ublezer0

Дробный цикл

Recommended Posts

Помогите с куском кода, плз. Голова сломалась. Понимаю, что просто, но не вижу как )

Задача выводить 5 звезд, рейтинга. Каждая может быть включена полностью, включена наполовину или выключена

$sscore     = 3.5;
for ($i = 0.5; $i <= 5; $i += 0.5)
{
	if ($i < $sscore) $star_class = "star-on";
	if ($i == $sscore && is_int($sscore)) $star_class = "star-on";
	if ($i == $sscore && is_float($sscore)) $star_class = "star-half";
	if ($i > $sscore) $star_class = "star-off";
	if ($i == intval($i) || $i == $sscore && is_float($sscore))
	{
		echo "<i class='$star_class'></i>";
	}
}

если оставить intval то выводится 5 звезд, но полу-звезда не показывается, а с моим условием - отображается одна звезда лишняя

Edited by d0ublezer0

Share this post


Link to post
Share on other sites

А если так?
 

$step = 0.5;
$sscode     = '3.5';
for ($i = 1; $i <= 5; $i += 1)
{
  $star_class = '';
  if($sscode >= $i) $star_class = 'star-on';
  else if($sscode >= ($i-$step)) $star_class = 'star-half';
  else $star_class = 'star-off';
  echo '<i class='.$star_class.'></i>';
}

 

Share this post


Link to post
Share on other sites
3 часа назад, Switch74 сказал:

А если так?

Так не сработало (проверял первый опубликованный вариант, второй исправленный не тестировал)

Сделал так:

$sscore = $comment->rating/2;
$int_score = floor($sscore);
for ($i = 1; $i <= 5; $i++)
{
	if ($i <= $sscore) $star_class = "fa-star fa-star--on";
	if ($i > $sscore) $star_class = "fa-star-o fa-star--off";
	if ($i == $int_score && $sscore > $i) $star_class = "fa-star fa-star-half-o";
	echo "<i class='fa fa-fw $star_class'></i>";
}

 

Edited by d0ublezer0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Member Statistics

    46,439
    Total Members
    3,128
    Most Online
    Talomir
    Newest Member
    Talomir
    Joined
  • Recently Browsing   0 members

    No registered users viewing this page.