2013-04-27 174 views
1

我是PHP新手。PHP JSON格式貨幣逗號

我的代碼從Steam遊戲的json數據中讀取價格值。

http://store.steampowered.com/api/appdetails/?appids=8870 

問題是價格節點的值沒有用美元和美分的逗號分隔符格式化。我的代碼可以將美元和美分拼合在一起,但對於這種情況,這是正確的方法。另外,如果還有另一種更簡單的方法來做我的新手代碼,請隨時告訴我它可以改進的地方。謝謝!

<?php 

$appid = '8870'; 

$ht = 'http://store.steampowered.com/api/appdetails/?appids=' . $appid; 

$fgc = file_get_contents($ht); 
$jd = json_decode($fgc, true); 

$gdata = $jd[$appid]['data']; 

$gname = $gdata['name']; 
$gprice = $gdata['price_overview']['final']; 
$gdesc = $gdata['detailed_description']; 

$gusd = substr($gprice, 0, -2); 
$gcent = substr($gprice, 2); 

echo $gname. '<br>'; 
echo 'Price: $' .$gusd. ',' .$gcent; 

?> 

如果我可以問一個問題......可以在價格數據又名$ gprice被添加到被取出另一個價格數據,返回一個總。

+2

貌似價格只是表述爲「仙」的值,例如5999 = 59.99美元。嘗試'number_format($ price/100,2)'。 – 2013-04-27 22:02:28

+0

$ gnprice = number_format($ gprice/100,2);成功了! – 2013-04-27 23:51:21

回答

1

我基本上是做除了它的簡單得多,只是除以100,你在做什麼:

打開的價格轉換爲一個float:

$gprice = $gprice/100; 

然後用money_format

參考: PHP Docs - money_format

你也可以做到這一點,但沒有真正的需要。

$gprice = (int) $gdata['price_overview']['final']; 
0

轉換不壞,但你也可以使用:

$gusd = $gprice/100; 

echo $gname. '<br>'; 
echo 'Price: $' .str_replace('.', ',', $gusd); 

或使用money_format,而不是取代,但它是一個更復雜一點。

也以添加另一個你可以只用+或+ =運營商這樣做:

$gprice+= $gdata['price_overview']['final']; 
+0

謝謝你會測試它! – 2013-04-27 23:45:13

+0

簡單的數學就是解決我的需求和更少的代碼。感謝您也向我展示瞭如何用逗號替換點。 – 2013-04-28 18:10:05