php - 从数组创建 html 表
问题描述
我设法从数据库创建了两个数组,一个用于 table_headers 如下
$tb_headers=array('010','011','012','013','014','015','016');
并且还从数据库中生成了其他的表_data数组,如下所示
$tb_data=array(
array('011','013','014','015'),
array('010','012','014','015','016'),
array('010','011','013','016'),
array('010','011','012','013','014','015','016')
);
如何生成这种格式的表格?
th 010 | 011 | 012| 013| 014 | 015 | 016
row1 - | 011 | - | 013| 014 | 015 | -
row2 010 | - | 012 | - | 014 | 015 | 016
row3 010 | 011 | - | 013| - | - | 016
row4 010 | 011 | 012 | 013| 014 | 015 | 016
我试图编写这个没有按预期工作的脚本
<table style="width:50%;" border="1">
<tr>
<?php
foreach ($tb_headers as $key => $value) {
echo '<th>'.$value.'</th>';
}
echo '</tr>';
foreach ($tb_headers as $key => $data) {
echo '<tr>';
if(!empty($tb_data[$key])&& $tb_data[$key]==$data ){
echo '<td>'.$tb_data[$key].'</td>';
}else{
echo '<td>-</td>';
}
echo '</tr>';
}
?>
</table>
解决方案
试试这个,它使用 php in_array()函数。
<table>
<tr>
<?php
// header
foreach ($tb_headers as $value) echo '<th>' . $value . '</th>';
?>
</tr>
<?php
// content
foreach ($tb_data as $line => $values) {
echo '<tr>';
foreach ($tb_headers as $header) {
echo '<td>';
if (in_array($header, $values)) echo $header;
else echo '-';
echo '</td>';
}
echo '</tr>';
}
?>
</table>
推荐阅读
- c# - Azure.Messaging.ServiceBus SendMessageAsync 每 2 分钟超时一次?
- json - Azure 管道 API 调用门成功标准评估
- javascript - JavaScript 错误:即使 typeof 函数返回“数字”,函数也会返回 NaN
- inno-setup - Inno 设置功能 - 无效的原型
- html - CSS 文本溢出其容器:宽度不适合内容 - 没有宽度的解决方案:适合内容
- javascript - 如何将输入数据持久保存到我的所有表单中
- c# - 嵌套类:在父类中调用子类属性
- image - 如何在 React Native 中预加载图像?
- zsh - 更改默认 Zsh 完成功能
- twilio - 是否可以仅将 Twilio 状态电子邮件过滤到美国,因此我不会收到有关我们目前未运营的国家/地区的状态电子邮件