2017-03-11 104 views
0

我的代码在某种程度上工作,因为它将我的数组回显出来 - 但问题是,它会回显所有字段。PHP Array to HTML Table问题

我想只显示名称,培训师和状态字段。我无法理解如何去做。

阵列

[{ 
id: "8001073", 
name: "Castarnie", 
silk: "c20170311her/00829186.jpg", 
cloth_number: "4", 
jockey: "Harry Cobden", 
trainer: "Robert Walford", 
weight_value: "165", 
weight_unit: "pounds", 
form: "P-2P2PF", 
bred: "GB", 
last_run: "21", 
status: "WINNER" 
}, 
{ 
id: "7164976", 
name: "Try It Sometime", 
silk: "c20170311her/00026136.jpg", 
cloth_number: "8", 
jockey: "Mikey Hamill", 
trainer: "Sheila Lewis", 
weight_value: "140", 
weight_unit: "pounds", 
form: "654529", 
bred: "IRE", 
last_run: "20", 
status: "LOSER" 
} 
] 

和PHP代码看起来像

<?php if (count($obj) > 0): ?> 
<table> 
    <thead> 
    <tr> 
     <th><?php echo implode('</th><th>', array_keys(current($obj))); ?></th> 
    </tr> 
    </thead> 
    <tbody> 
<?php foreach ($obj as $row): array_map('htmlentities', $row); ?> 
    <tr> 
     <td><?php echo implode('</td><td>', $row); ?></td> 
    </tr> 
<?php endforeach; ?> 
    </tbody> 
</table> 
<?php endif; ?> 
+0

你'PHP'功能请。 –

+0

它来自json api $ jsondata = file_get_contents($ api_url); $ obj = json_decode($ jsondata,true); – BCLtd

回答

0

它没有意义调用array_map()因为你只修改每一个值的每一行与htmlentities显示其中三个 - 只修改你要显示的内容。

代码:(Demo

$json_data=file_get_contents($api_url);  
$objects=json_decode($json_data); 
if(is_array($objects) && sizeof($objects)){ 
    echo '<table><thead><tr>'; 
     echo '<th>Name</th><th>Trainer</th><th>Status</th>'; 
    echo '</tr></thead><tbody>'; 
    foreach($objects as $row){ 
     echo '<tr>'; 
      echo '<td>',htmlentities($row->name),'</td>'; 
      echo '<td>',htmlentities($row->trainer),'</td>'; 
      echo '<td>',htmlentities($row->status),'</td>'; 
     echo '</tr>'; 
    } 
    echo '</tbody></table>'; 
}else{ 
    echo 'Invalid or empty json data received'; 
} 

输出:产生该阵列

<table> 
    <thead> 
     <tr> 
      <th>Name</th> 
      <th>Trainer</th> 
      <th>Status</th> 
     </tr> 
    </thead> 
    <tbody> 
     <tr> 
      <td>Castarnie</td> 
      <td>Robert Walford</td> 
      <td>WINNER</td> 
     </tr> 
     <tr> 
      <td>Try It Sometime</td> 
      <td>Sheila Lewis</td> 
      <td>LOSER</td> 
     </tr> 
    </tbody> 
</table> 
1
$jsondata = file_get_contents($api_url); 
$obj = json_decode($jsondata, true); 
if (is_array($obj)){ 
    echo "<table>"; 
    echo "<th><td>Name</td><td>Trainer</td><td>Status</td></tr>"; 
    foreach ($obj as $row){ 
     array_map('htmlentities', $row); 
     echo "<tr>"; 
     echo "<td>".$row["name"]."</td>"; 
     echo "<td>".$row["trainer"]."</td>"; 
     echo "<td>".$row["status"]."</td>"; 
     echo "</tr>"; 
    } 
    echo "</table>"; 
} 
+0

感谢您花时间!真的很感激。它会得到500错误,但? – BCLtd

+0

刚刚得到它,谢谢! – BCLtd

+1

错过了第二行的分号,修复后 – hendr1x