Echo Out Interger不同,如果超过PHP的价值

时间:2015-09-22 08:50:56

标签: php

所以我正在为我的网站创建一个积分系统,我希望在用户配置文件中显示时将其更改为echo而不是实际的整数。 例如:当整数低于1000时,它显示为实际数字(例如:645)。但是当它在1000到1100之间时,它将显示为“1k”,依此类推。到目前为止我所做的工作有效,但显示不正确,似乎有点浪费空间..有没有办法以更简单的方式做到这一点;更快的方式?

谢谢!

代码:

<?php

   $points_disp = $user_data['points'];

   if($points_disp < 1000){
      echo $points_disp;
   } else if ($points_disp >= 1000){
      echo '1k';
   } else if ($points_disp >= 1200){
      echo '1.2k';
   } else if ($points_disp >= 1400){
      echo '1.4k';
   } else if ($points_disp >= 1600){
      echo '1.6k';
   } else if ($points_disp >= 1800){
      echo '1.8k';
   } else if ($points_disp >= 2000){
      echo '2k';
   }

?>
Edit: I figured out an easier way to do this;

code (for anyone else who needs to do this):

<?php
$points_disp = $user_data['points'];
$fdigit = substr($points_disp, 0, 1);
$sdigit = substr($points_disp, 1, 1);

if ($points_disp < 1000){
    echo $points_disp;
} else if ($points_disp >= 1000){
    echo $fdigit . "." . $sdigit . "k";
}

echo $num; 
?>

2 个答案:

答案 0 :(得分:0)

试试这个,

SelectMany

答案 1 :(得分:0)

您可以使用开关案例:

$points_disp = $user_data['points'];

switch(true)
{
    case ($points_disp < 1000):
     $num = $points_disp;
     break;
    case ($points_disp > 1000 && $points_disp < 1100 ):
        $num = '1.2k';
        break;

    //...so on
}

echo $num;