Jump to content
  • Sign Up
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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Member Statistics

    46,872
    Total Members
    1,451
    Most Online
    DisplayName
    Newest Member
    DisplayName
    Joined
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Спрашивают сейчас

  • Пишут сейчас

    • Спасибо за отзывчивость. Пока нет команды, имею опыт продвижения и креативные идеи.
    • Здравствуйте. Хостинг SerfStack.com предлагает вам аренду виртуальных выделенных серверов (VPS/VDS) по доступным ценам. Наши виртуальные сервера подойдут вам как для размещения сайтов, высоконагруженных проектов, так и для аренды сервера под RDP для серфинга в сети.   Стандартные тарифные планы: Тарифные планы линейки POWER: Краткая информация: Сервера компании SerfStack.com размещены в дата-центре IMAQLIQ, расположенном в  г. Санкт-Петербург. Размещение виртуальных серверов производится на сервером оборудование HP с процессорами Intel Xeon E5-2695v2 и E5-2697v2 и серверными SSD накопителями Intel “DC” серии. В качестве бесплатного администрирования предоставляется услуга по переносу сайтов от старого хостинг провайдера. При аренде VPS/VDS сервера от 3 до 12 месяцев в подарок предоставляется SSL-сертификат Comodo Positive SSL с возможностью обновления при продлении услуги.   Трассировка/пинг до серверов: Looking Glass: lg.serfstack.com Операционные системы: Доступные варианты установки базовых операционных систем: Centos 6/7/8, Debian 7/8/9, Ubuntu 14/16/18, FreeBSD 10/11/12/, OC Windows Server 2012/2016/2019 а также установки любой версии ОС из ISO образа. Способы оплаты: Работаем с физическими и юр.лицами. WebMoney, QIWI, Яндекс.Деньги, Банковские карты, Bitcoin (BTC), безнал для юридических лиц с предоставлением полного пакета документов. Текущие акции на заказ услуг вы можете просмотреть по ссылке: https://serfstack.com/about/promo
    • CRM-системы в облаке Друзья привет! Времена, когда менеджеры вели учет клиентов и истории звонков в блокнотах или, в лучшем случае, в Excel, уходят в прошлое. Сейчас существует немало более эффективных средств для взаимодействия с клиентами, повышения качества работы с ними, увеличение показателей продаж и оптимизации маркетинга. Среди таких, в частности — CRM-системы, которые помогают управлять отношениями с клиентами. Однако для того, чтобы эти системы работали стабильно и быстро, им нужен качественный хостинг. И обеспечить его наилучшим образом помогут облачные решения от Tucha. Более подробно в нашей статье.
  • Popular Contributors

    Nobody has received reputation this week.

×
×
  • Create New...