[英]PHP Multidimensional JSON Array to HTML Table
我有一個多維 JSON 數組,我想在此數據中生成一個基本的 bacis HTML 表。
JSON 采用以下格式 -此處鏈接;
[
{
"id": 1,
"date": "10.02.2020",
"floor": "Ground",
"room_name": "G01",
"room_status": 1,
"hour": {
"08": 1,
"09": 2,
"10": 1,
"11": 2,
"12": 0,
"13": 1,
"14": 2,
"15": 2,
"16": 1,
"17": 0,
"18": 1,
"19": 1,
"20": 0
}
},
{
"id": 2,
"date": "10.02.2020",
"floor": "Ground",
"room_name": "G02",
"room_status": 2,
"hour": {
"08": 1,
"09": 1,
"10": 0,
"11": 0,
"12": 0,
"13": 0,
"14": 1,
"15": 1,
"16": 0,
"17": 1,
"18": 1,
"19": 1,
"20": 1
}
},
{
"id": 3,
"date": "10.02.2020",
"floor": "Ground",
"room_name": "G03",
"room_status": 1,
"hour": {
"08": 0,
"09": 2,
"10": 2,
"11": 2,
"12": 0,
"13": 2,
"14": 1,
"15": 0,
"16": 1,
"17": 1,
"18": 1,
"19": 2,
"20": 2
}
},
{
"id": 4,
"date": "10.02.2020",
"floor": "Ground",
"room_name": "G04",
"room_status": 2,
"hour": {
"08": 1,
"09": 2,
"10": 2,
"11": 1,
"12": 1,
"13": 0,
"14": 0,
"15": 1,
"16": 0,
"17": 2,
"18": 0,
"19": 1,
"20": 2
}
},
{
"id": 5,
"date": "10.02.2020",
"floor": "Ground",
"room_name": "G05",
"room_status": 2,
"hour": {
"08": 1,
"09": 2,
"10": 1,
"11": 0,
"12": 0,
"13": 0,
"14": 2,
"15": 1,
"16": 1,
"17": 2,
"18": 2,
"19": 1,
"20": 1
}
}
]
我需要遍歷這些數據並在左側列中顯示date
、 floor
和room_name
。 我能夠做到這一點,但是我還需要在同一個表格單元格中顯示hour
和room_status
。 我不知道如何實現這一目標。
我需要我的決賽桌看起來像這樣(請注意,我將在決賽桌中將整數更改為字符串,即0 = false
、 1 = true
等);
+------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| Room | | | | | | | | | | | | | |
+------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| 10.02.2020 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| Ground | | | | | | | | | | | | | |
| G01 | 1 | 2 | 1 | 2 | 0 | 1 | 2 | 2 | 1 | 0 | 1 | 1 | 0 |
+------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| 10.02.2020 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| Ground | | | | | | | | | | | | | |
| G02 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 1 |
+------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| 10.02.2020 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 2 |
| Ground | | | | | | | | | | | | | |
| G02 | 0 | 2 | 2 | 2 | 0 | 2 | 1 | 0 | 1 | 1 | 1 | 2 | |
+------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| etc | etc | etc | etc | etc | etc | etc | etc | etc | etc | etc | etc | etc | etc |
+------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
在上表中, hour
是單元格中的最高值(08 到 20),而room_status
是下面的值(0、1 或 2)。
我的 PHP 代碼是;
$string = file_get_contents("data.json");
$json = json_decode($string, true);
<?php foreach($json as $room): ?>
<tr>
<td>
<p><?php echo $room['date']; ?></p>
<p><?php echo $room['floor']; ?></p>
<p><?php echo $room['room_name']; ?></p>
</td>
// need help with populating the other table cells here
</tr>
<?php endforeach; ?>
我知道我需要某種嵌套的 foreach 循環才能訪問hour
鍵和值,但我無法弄清楚:/
任何幫助表示贊賞。
我認為這就是你要找的:
$string = file_get_contents("data.json");
$json = json_decode($string, true);
<?php foreach($json as $room): ?>
<tr>
<td>
<p><?php echo $room['date']; ?></p>
<p><?php echo $room['floor']; ?></p>
<p><?php echo $room['room_name']; ?></p>
</td>
<?php foreach($room['hour'] as $hour => $status): ?>
<td>
<p><?php echo $hour; ?></p>
<p><?php echo $status; ?></p>
</td>
<?php endforeach; ?>
</tr>
<?php endforeach; ?>
有更好的制作桌子的方法,但這應該可以達到您的要求;
$string = file_get_contents("data.json");
$json = json_decode($string, true);
<?php foreach($json as $room): ?>
<tr>
<td>
<p><?php echo $room['date']; ?></p>
<p><?php echo $room['floor']; ?></p>
<p><?php echo $room['room_name']; ?></p>
</td>
<?php
foreach($room["hour"] as $hour => $status){
echo "<td>" $hour . "<br/>" . $status . "</td>"
}
?>
</tr>
<?php endforeach; ?>
foreach( $room['hour'] as $hour)
{
...
}
等等......嵌套在你的 foreach 中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.