格式化数千个数字

时间:2012-05-03 02:01:17

标签: php

我有以下功能:

function getPostViews($postID){
    $count_key = 'post_views_count';
    $count = get_post_meta($postID, $count_key, true);
    if($count==''){
        delete_post_meta($postID, $count_key);
        add_post_meta($postID, $count_key, '0');
        return __('0 View','mm');
    }
    return $count. __(' Views','mm'); 
}

如何格式化数字以包含千分之一的逗号?例如,50000应该变成50,000。

5 个答案:

答案 0 :(得分:3)

使用number_format()

number_format($number);

答案 1 :(得分:2)

查看number_format

例如:

$number = 1234.56;

// english notation (default)
$english_format_number = number_format($number);
// 1,235

// French notation
$nombre_format_francais = number_format($number, 2, ',', ' ');
// 1 234,56

$number = 1234.5678;

// english notation without thousands separator
$english_format_number = number_format($number, 2, '.', '');
// 1234.57

答案 2 :(得分:2)

您可以使用number_format

答案 3 :(得分:0)

$number=number_format($number);

答案 4 :(得分:0)

您的数字格式使用是正确的,以获得您正在寻找的漂亮格式。我认为您在更改数据库中的格式时遇到的问题是您正在格式化数字并将其重新保留在自身上。

例如:

$count = 5000;
$count = number_format($count);
//$count is no longer equal to 5000, it is now a string 5,000

尝试使用临时变量,这样原来的$ count变量就不会改变,当你回写到数据库时,它仍然是你想要的格式。

例如:

$count = 5000;
$tmpCount = 0;
$tmpCount = number_format($count);
// $count is still 5000, and $tmpCount now holds the value 5,000.

您的代码的更新版本,我假设您只希望meta保留逗号分隔值?

    function setPostViews($postID) {
    //Set initial variables
    $count_key = 'post_views_count';
    $tmpCount = 0;
    $count = get_post_meta($postID, $count_key, true);

    if($count == '') {
        $count = 0;
        delete_post_meta($postID, $count_key);
        add_post_meta($postID, $count_key, '0');
    } else {
        $count++;
        //Set tmpCount variable to hold comma separated value
        $tmpCount = number_format($count);

        //Comma separated value is passed into your function
        update_post_meta($postID, $count_key, $tmpCount);
    }
}

那是你想要的吗?或者,如果您只想在向用户显示时以这种方式格式化此数字,但数据库保持正常(不是以逗号分隔),查询数据库后,保存db值并创建逗号分隔变量,就像我一样上面已经完成了。然后在任何db函数上,参考$ count变量,在任何用户输出函数上,使用$ tmpCount变量。

同样,我希望能回答你的问题,如果不是,请澄清。