首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 將字串每三位插入逗號(金額格式化)

     編輯:PHP 綜合知識

金額顯示常需 1234567890 → 1,234,567,890。PHP 內建 number_format() 可直接完成,手動實作可參考演算法邏輯。

內建函數一行搞定

echo number_format(1234567890);           // 1,234,567,890
echo number_format(1234.56, 2, '.', ','); // 1,234.56 (小數點、千分位自訂)

手動實作演算法 (原文邏輯)

function splitStrWithComma($str) {
    $len = strlen($str);
    $chunks = [];
    for ($i = $len; $i > 0; $i -= 3) {
        $start = max(0, $i - 3);
        $chunks[] = substr($str, $start, $i - $start);
    }
    return implode(',', array_reverse($chunks));
}

echo splitStrWithComma("1234567890"); // 1,234,567,890

支援小數點版本

function formatNumber($num, $decimals = 0) {
    $parts = explode('.', (string)$num);
    $intPart = $parts[0];
    $decPart = $parts[1] ?? '';
    $formattedInt = splitStrWithComma($intPart);
    if ($decimals > 0) {
        $decPart = substr($decPart . str_repeat('0', $decimals), 0, $decimals);
        return "$formattedInt.$decPart";
    }
    return $formattedInt;
}

國際化:NumberFormatter (PHP intl 擴充)

$fmt = new NumberFormatter('zh_TW', NumberFormatter::DECIMAL);
echo $fmt->format(1234567.89); // 1,234,567.89 (依地區設定)

適用場景

  • 金額、統計數字顯示
  • 報表匯出、列印格式
  • 前端顯示前後端一致性

實務請直接用 number_format() 或 NumberFormatter,手僅供演算法參考。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved