-2

我正在尝试在 1000 之后使用 k、m、b、t 格式格式化数字,但我收到以下消息:

注意:未定义的偏移量:1

我不明白出了什么问题以及如何解决问题。

$x = round($num);
$x_number_format = number_format($x);
$x_array = explode(',', $x_number_format);
$x_parts = array('k', 'm', 'b', 't');
$x_count_parts = count($x_array) - 1;
$x_display = $x;
$x_display = $x_array[0] . ((int) $x_array[1][0] !== 0 ? '.' . $x_array[1][0] : '');
$x_display .= $x_parts[$x_count_parts - 1];
return $x_display;

这是爆炸后的var_dump()结果..$x_array;

array(1) { [0]=> string(1) "1" }
4

1 回答 1

1

把它放在你的第一行之后:

if ($x < 1000) return $x;

编辑(更简单的方法;整个功能):

if     ($x < 1000)    return round($x);
elseif ($x < 1000000) return round($x/1000)   .'k';
else                  return round($x/1000000).'m';
于 2013-06-20T19:33:28.040 回答