Converting number abbreviations (5.2k, 1.7m, etc) into valid integers with PHP

后端 未结 6 1012
执笔经年
执笔经年 2021-01-02 22:02

I have a database with a column containing a variety of numbers written in \"shorthand\", for example:

5k for 5,000
86.6k for 86,600
4.1m for 4,100,000
1

6条回答
  •  青春惊慌失措
    2021-01-02 22:59

    $string = '5k'; // or whatever
    $suffix = strspn($string, '.0123456789');
    $value = doubleval(substr($string, 0, $suffix))
    if($suffix < strlen($string))
    {
     switch($string[$suffix])
     {
      case 'k':
       $value *= 1000;
       break;
      case 'm':
       $value *= 1000000;
       break;
      case 'b':
       $value *= 1000000000;
       break;
     }
    }
    echo number_format($value);
    

提交回复
热议问题