如何在PHP中创建数字的缩写

本文概述

  • A.确切的缩写
  • B.通用缩写
当前拥有最多用户的频道有65119648个用户。可能你不是很容易阅读数字, 所以像65M或6511K这样的缩写更容易阅读是吗?许多人确实估计这种功能的实用性, 因此, 如果你的网站或应用程序处理的是没人想完全阅读的大量数字, 请给他们显示一个缩写。
在本文中, 我们将向你展示2种实现, 以使用PHP生成数字的缩写。
A.确切的缩写如果你愿意精确显示出Providen Number的缩写, 则此实现可以解决问题:
< ?php /** * Function that converts a numeric value into an exact abbreviation */function number_format_short( $n, $precision = 1 ) { if ($n < 900) {// 0 - 900$n_format = number_format($n, $precision); $suffix = ''; } else if ($n < 900000) {// 0.9k-850k$n_format = number_format($n / 1000, $precision); $suffix = 'K'; } else if ($n < 900000000) {// 0.9m-850m$n_format = number_format($n / 1000000, $precision); $suffix = 'M'; } else if ($n < 900000000000) {// 0.9b-850b$n_format = number_format($n / 1000000000, $precision); $suffix = 'B'; } else {// 0.9t+$n_format = number_format($n / 1000000000000, $precision); $suffix = 'T'; }// Remove unecessary zeroes after decimal. "1.0" -> "1"; "1.00" -> "1"// Intentionally does not affect partials, eg "1.50" -> "1.50" if ( $precision > 0 ) {$dotzero = '.' . str_repeat( '0', $precision ); $n_format = str_replace( $dotzero, '', $n_format ); } return $n_format . $suffix; }

这表示用小数表示缩写, 例如
< ?php $examples = array(15, 129, 400, 1500, 14350, 30489, 50222, 103977 , 2540388, 53003839); foreach($examples as $example){echo "$example => " . number_format_short($example) . "\n"; }/*Outputs: 15 => 15 129 => 129 400 => 400 1500 => 1.5K 14350 => 14.4K 30489 => 30.5K 50222 => 50.2K 103977 => 104K 2540388 => 2.5M 53003839 => 53M*/

此实现使用number_format函数, 该函数格式化成千上万个分组的数字。
B.通用缩写如果你只愿意显示要约号的重要部分(没有确切的千位组), 则此实现可以解决问题:
< ?php /** * Function that converts a numeric value into an abbreviation. */function number_format_short( $n ) { if ($n > 0 & & $n < 1000) {// 1 - 999$n_format = floor($n); $suffix = ''; } else if ($n > = 1000 & & $n < 1000000) {// 1k-999k$n_format = floor($n / 1000); $suffix = 'K+'; } else if ($n > = 1000000 & & $n < 1000000000) {// 1m-999m$n_format = floor($n / 1000000); $suffix = 'M+'; } else if ($n > = 1000000000 & & $n < 1000000000000) {// 1b-999b$n_format = floor($n / 1000000000); $suffix = 'B+'; } else if ($n > = 1000000000000) {// 1t+$n_format = floor($n / 1000000000000); $suffix = 'T+'; } return !empty($n_format . $suffix) ? $n_format . $suffix : 0; }

【如何在PHP中创建数字的缩写】该代码段将生成主数字和加号, 而不是生成带有” 小数” 的缩写, 例如:
< ?php$examples = array(15, 129, 400, 1500, 14350, 30489, 50222, 103977 , 2540388, 53003839); foreach($examples as $example){echo "$example => " . number_format_short($example) . "\n"; }/*Outputs: 15 => 15129 => 129400 => 4001500 => 1K+14350 => 14K+30489 => 30K+50222 => 50K+103977 => 103K+2540388 => 2M+53003839 => 53M+*/

编码愉快!

    推荐阅读