我似乎无法弄清楚如何打印一个漂亮的有序表。
我希望最多有7列,它可以生成所需的行数,具体取决于数组的大小。该数组是通过一个可以随时更新的URL。 (这是一个关于蒸汽的球员库存。)
$id = $steamprofile['steamid'];
$key = 'XXXXXXXXXXXXXXXXXXXX';
if($id != null){
$inv = file_get_contents('http://steamcommunity.com/profiles/'.$id.'/inventory/json/730/2');
$inventory = json_decode($inv, true);
$price = file_get_contents('values/response.json');
$value = json_decode($price, true);
foreach ($inventory['rgDescriptions'] as $rgDescription) {
for($i = 0; sizeof($rgDescription['market_name']) > $i; $i++){
if(isset($rgDescription['market_name'])){
print '<td><img src="https://steamcommunity-a.akamaihd.net/economy/image/'.$rgDescription['icon_url'].'" alt="'.$rgDescription['market_name'].' width="80" height="75"></td>';
}
}
}
}
如果您需要查看数组,则数组位于here。
我可以打印出表格,但它总是重复我不想要的项目。那么我该如何解决这个问题呢?任何建议都非常感谢。
答案 0 :(得分:1)
您只需计算列数:
$max = 7;
$col = 1;
for(...) {
if ($col == 1) {
echo '<tr>'; // start new row if on column #1
}
echo '<td><img etc....'; // output a column
if ($col == $max) {
echo '</tr>'; // if column $max was just output, end the row
$col = 0; // reset column count, 0 to account for ++ coming up next
}
$col++;
}
答案 1 :(得分:1)
"market_name"
不是数组,而是一个元素。如果您count
它(与sizeof
相同),它将返回1
,因为它只分配了一个值。说,您的行for($i = 0; sizeof($rgDescription['market_name']) > $i; $i++)
与for($i = 0; 1 > $i; $i++)
相同,始终返回相同的结果。
foreach
播放重复部分,然后你会得到一张带有相同线条的巨大桌子。
<强>建议:强>
foreach ($inventory['rgDescriptions'] as $rgDescription) {
foreach ($rgDescription as $rg) {
if(isset($rg['market_name'])) {
print('
<td>
<img src="https://steamcommunity-a.akamaihd.net/economy/image/'
.$rgDescription['icon_url'].
'" alt="'.$rgDescription['market_name'].
' width="80" height="75"></td>');
}
}
}