我试图在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" }
。
{{1}}
答案 0 :(得分: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';