-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;

EDIT(より簡単なアプローチ、機能全体):

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 に答える