使用 PHP 输出所有货币值
Output All Currency Values using PHP
我正在尝试利用 Bitcoin Charts API 将所有货币的比特币价值显示为列表项。
目前我在每个列表项中重复此 PHP 片段:
<li class="myClass">
<?php
foreach(json_decode(file_get_contents("http://api.bitcoincharts.com/v1/markets.json")) as $item)
if($item->symbol == 'localbtcPLN') break;
printf("\t%s\nPLN", $item->avg);
?>
</li>
我如何简化它,使代码只调用一次 JSON 文件?
感谢您的帮助。
根据 Vishal 的帮助,我尝试了这个:
<?php $all_data = json_decode(file_get_contents("http://api.bitcoincharts.com/v1/markets.json"),true);
foreach ($all_data as $data)
{
?><li class="pure-menu-item pure-menu-disabled">
<?php
echo $data['ask'];//use the keyname to get the value
echo ' ';
echo $data['currency'];
?>
</li>
<?php
}
?>
但是,它输出了太多数据,包括空值。
利用我从 Florian 和 Vishal 那里学到的知识,我尝试了以下代码片段,它完美地输出了一些重复货币的数据。
<?php $all_data = json_decode(file_get_contents("http://api.bitcoincharts.com/v1/markets.json"),true);
foreach ($all_data as $data)
{
if(trim($data['avg']) != "")//check if value not empty
{
?><li class="pure-menu-item pure-menu-disabled">
<?php
echo $data['avg']; //use the keyname to get the value
echo ' ';
echo $data['currency'];
?>
</li>
<?php
}
}
?>
你可以运行一个foreach循环
<ol>
<?php $all_data = json_decode(file_get_contents("http://api.bitcoincharts.com/v1/markets.json"),true);
foreach ($all_data as $data)
{
if(trim($data['currency']) != "")//check if value not empty
{
?><li>
<?php echo $data['bid'];//use the keyname to get the value ?>
</li>
<?php
}
}
?>
</ol>
我认为您想按特定顺序显示值。
首先,将 json_decode() 的结果存储在数组中,如@Vishal Wadhawan 所说。
$all_data = json_decode(file_get_contents("http://api.bitcoincharts.com/v1/markets.json"),true);
接下来,创建一个新数组,您将只存储符号和平均值:
$myvalues = array();
foreach ($all_data as $data)
{
$myvalues[$data['symbol']] = $data['avg'];
}
之后,您可以使用 $myvalues 来显示平均值:
<li class="myClass">
<?php echo $myvalues['localbtcPLN'] . ' PLN'; ?>
</li>
您还可以存储 'currency' 值:
$myvalues[$data['symbol']] = array(
'avg' => $data['avg'],
'currency' => $data['currency'],
);
并通过以下方式访问它:
<li class="myClass">
<?php echo $myvalues['localbtcPLN']['avg'] . ' ' . $myvalues['localbtcPLN']['currency']; ?>
</li>
我正在尝试利用 Bitcoin Charts API 将所有货币的比特币价值显示为列表项。
目前我在每个列表项中重复此 PHP 片段:
<li class="myClass">
<?php
foreach(json_decode(file_get_contents("http://api.bitcoincharts.com/v1/markets.json")) as $item)
if($item->symbol == 'localbtcPLN') break;
printf("\t%s\nPLN", $item->avg);
?>
</li>
我如何简化它,使代码只调用一次 JSON 文件?
感谢您的帮助。
根据 Vishal 的帮助,我尝试了这个:
<?php $all_data = json_decode(file_get_contents("http://api.bitcoincharts.com/v1/markets.json"),true);
foreach ($all_data as $data)
{
?><li class="pure-menu-item pure-menu-disabled">
<?php
echo $data['ask'];//use the keyname to get the value
echo ' ';
echo $data['currency'];
?>
</li>
<?php
}
?>
但是,它输出了太多数据,包括空值。
利用我从 Florian 和 Vishal 那里学到的知识,我尝试了以下代码片段,它完美地输出了一些重复货币的数据。
<?php $all_data = json_decode(file_get_contents("http://api.bitcoincharts.com/v1/markets.json"),true);
foreach ($all_data as $data)
{
if(trim($data['avg']) != "")//check if value not empty
{
?><li class="pure-menu-item pure-menu-disabled">
<?php
echo $data['avg']; //use the keyname to get the value
echo ' ';
echo $data['currency'];
?>
</li>
<?php
}
}
?>
你可以运行一个foreach循环
<ol>
<?php $all_data = json_decode(file_get_contents("http://api.bitcoincharts.com/v1/markets.json"),true);
foreach ($all_data as $data)
{
if(trim($data['currency']) != "")//check if value not empty
{
?><li>
<?php echo $data['bid'];//use the keyname to get the value ?>
</li>
<?php
}
}
?>
</ol>
我认为您想按特定顺序显示值。
首先,将 json_decode() 的结果存储在数组中,如@Vishal Wadhawan 所说。
$all_data = json_decode(file_get_contents("http://api.bitcoincharts.com/v1/markets.json"),true);
接下来,创建一个新数组,您将只存储符号和平均值:
$myvalues = array();
foreach ($all_data as $data)
{
$myvalues[$data['symbol']] = $data['avg'];
}
之后,您可以使用 $myvalues 来显示平均值:
<li class="myClass">
<?php echo $myvalues['localbtcPLN'] . ' PLN'; ?>
</li>
您还可以存储 'currency' 值:
$myvalues[$data['symbol']] = array(
'avg' => $data['avg'],
'currency' => $data['currency'],
);
并通过以下方式访问它:
<li class="myClass">
<?php echo $myvalues['localbtcPLN']['avg'] . ' ' . $myvalues['localbtcPLN']['currency']; ?>
</li>