вопрос
Решил изменить вид рейтинга на сайте ( сделать его вида: 1К , 1М ). Здесь на сайте нашел хак от SANDER и решил применить его к рейтингу, но столкнулся с одной проблемой. Он не отображает "+" и "-". Перелопатил кучу инфы в сети. Решил попробовать сделать это с помощью тернарной операции ( [первый операнд - условие] ? [второй операнд] : [третий операнд] ) для этого заменил :
на:
пробовал также вариант:
Получившийся код имел такой вид :
Но вот незадача, ни в какую не хочет выполнятся условие. Вернее если условие соблюдается и рейтинг меньше нуля, то выводиться третий операнд и для рейтинга больше и для рейтинга меньше 0. Если же поменять условие на ($rate > 0), то почему то выводиться второй операнд тоже для обоих рейтингов. Почему так может происходить? Всю голову уже себе сломал. И вообще реализуемо ли это так? Или для этого нужно пробовать идти каким то другим путем .Буду признателен за любую подсказку.
$rate = round($rate, 1);
echo $rate . $amounts[$level];
на:
$rate = round($rate , 1);
echo ($rate < 0) ? '-' .$rate : '+' .$rate . $amounts[$level];
пробовал также вариант:
$rate = round($rate , 1);
echo ((($rate < 0) ? '-' .$rate : '+' .$rate . $amounts[$level]) ? '-' .$rate : '+' .$rate . $amounts[$level]);
Получившийся код имел такой вид :
<?php
$amounts = [
'',
'К',
'М',
'B',
];
$level = 0;
$rate = preg_replace('/[^\d]/', '', $rate);
$rate = intval($rate);
while ($rate > 1000) {
$rate = $rate / 1000;
$level++;
}
$rate = round($rate , 1);
echo ($rate < 0) ? '-' .$rate : '+' .$rate . $amounts[$level];
Но вот незадача, ни в какую не хочет выполнятся условие. Вернее если условие соблюдается и рейтинг меньше нуля, то выводиться третий операнд и для рейтинга больше и для рейтинга меньше 0. Если же поменять условие на ($rate > 0), то почему то выводиться второй операнд тоже для обоих рейтингов. Почему так может происходить? Всю голову уже себе сломал. И вообще реализуемо ли это так? Или для этого нужно пробовать идти каким то другим путем .Буду признателен за любую подсказку.