使用number_format添加千位分隔符

问题描述:

我试图很简单地把变量$输出里面的数字变成带有千位分隔符的数字。它当前输出的数字是49995,但我希望它显示为49,995。使用number_format添加千位分隔符

有些麻烦。帮帮我?

function twitter_followers($user = 'mytwitterusername'){ 
    // Build Twitter api url 
    $apiurl = "http://api.twitter.com/1/users/show.json?screen_name={$user}"; 

    //cache request 
    $transient_key = $user . "_twitter_followers"; 

    // If cached (transient) data are used, output an HTML 
    // comment indicating such 
    $cached = get_transient($transient_key); 

    if (false !== $cached) { 
     return $cached; 
    } 

    // Request the API data, using the constructed URL 
    $remote = wp_remote_get(esc_url($apiurl)); 

    // If the API data request results in an error, return 
    // an appropriate comment 
    if (is_wp_error($remote)) { 
     return '<p>Twitter unaviable</p>'; 
    } 

    // If the API returns a server error in response, output 
    // an error message indicating the server response. 
    if ('200' != $remote['response']['code']) { 
     return '<p>Twitter responded with an HTTP status code of '. esc_html($remote['response']['code']) . '</p>'; 
    } 

    // If the API returns a valid response, the data will be 
    // json-encoded; so decode it. 
    $data = json_decode($remote['body']); 

    $output = $data->followers_count; 
    $followers = number_format($output,2,'.',','); 

    set_transient($transient_key, $output, 600); 

    return $followers; 
} 
+0

应该这样做,'var_dump($ output);'给你什么? – jeroen 2012-07-12 20:28:10

我测试过下面的代码和它的作品:

$output = 49995; 
$followers = number_format($output , 0 , '.' , ','); 
echo $followers; 

不知道为什么你的代码不能正常工作。另外请确保将第二个参数设置为0,除非您想要小数点。也许$输出的值最初是一个字符串,你需要把它作为一个整数,然后通过number_format()?

您的number_format似乎是正确的。在调用它之前尝试的

$output = intval($data->followers_count); 

,也许有值解码后的问题。