PHP JSON格式货币逗号

时间:2013-04-27 21:50:35

标签: php json currency comma steam

我是PHP的新手。

我的代码从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 个答案:

答案 0 :(得分:1)

我基本上会做你正在做的事情,除了它更简单,除以100:

将价格变为浮动:

$gprice = $gprice / 100;

然后使用money_format

参考:PHP Docs - money_format

您也可以这样做,但确实没有必要。

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

答案 1 :(得分:0)

转换不错,但你也可以使用它:

$gusd = $gprice/100;

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

或使用money_format而不是替换,但它有点复杂。

另外,要添加另一个,你可以只使用+或+ =运算符,如下所示:

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