我希望你能帮助我完成我的任务。我还是新的PHP语言。我有这样的案例:
<!DOCTYPE html>
<html>
<head>
<style>
table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
th, td {
padding: 5px;
text-align: left;
}
</style>
</head>
<body>
<?php
$ub = array(
array(
"Fakultas Ilmu Komputer",
array(
"Jurusan Teknik Informatika",
array(
"Prodi Teknik Informatika",
"Prodi Teknik Komputer",
"Prodi Magister Ilmu Komputer"
)
),
array(
"Jurusan Sistem Informasi",
array(
"Prodi Sistem Informasi",
"Prodi Teknologi Informasi",
"Prodi Pendidikan Teknologi Informasi"
)
)
),
array(
"Fakultas Kedokteran",
array(
"Jurusan Kedokteran",
array(
"Prodi Pendidikan Dokter"
)
),
array(
"Jurusan Keperawatan dan Gizi",
array(
"Prodi Ilmu Keperawatan",
"Prodi Ilmu Gizi",
"Prodi Farmasi",
"Prodi Kebidanan"
)
)
)
);
?>
<table>
<tr>
<th>Fakultas</th>
<th>Jurusan</th>
<th>Program Studi</th>
</tr>
</table>
</body>
</html>
我该怎样做一个像这样的桌子?我试过这个,但它不起作用:
for($baris = 0 ; $baris < 2 ; $baris++ ) {
echo $ub[$baris][0] ; $baris++;} ?>
</th>
<th>
<?php
for($barisa = 0 ; $barisa < 2 ; $barisa++ ) {
echo $ub[$barisa+1][1];
$barisa++;
}
?>
</th>
<th>
<?php
for($barisb = 0 ; $barisb < 4 ; $barisb++ ) {
echo $ub[$barisb+1][2] ;
$barisb++;
}
?>
</th>
谢谢。
答案 0 :(得分:1)
你应该稍微改变你的数组,所以所有的列都在同一级别上:
<?php
$ub = array(
"Fakultas Ilmu Komputer" => array(
array(
"Jurusan Teknik Informatika",
array(
"Prodi Teknik Informatika",
"Prodi Teknik Komputer",
"Prodi Magister Ilmu Komputer"
)
),
array(
"Jurusan Sistem Informasi",
array(
"Prodi Sistem Informasi",
"Prodi Teknologi Informasi",
"Prodi Pendidikan Teknologi Informasi"
)
)
),
"Fakultas Kedokteran" => array(
array(
"Jurusan Kedokteran",
array(
"Prodi Pendidikan Dokter"
)
),
array(
"Jurusan Keperawatan dan Gizi",
array(
"Prodi Ilmu Keperawatan",
"Prodi Ilmu Gizi",
"Prodi Farmasi",
"Prodi Kebidanan"
)
)
)
);
?>
之后,您必须跟踪表格的所有“内部行”并打印嵌套在最深循环中的行。像这样:
<?php
foreach($ub as $fakultas => $jurusan) {
$fakultasLine = true;
// calculate inside rows per row
$insideRows = 0;
foreach($jurusan as $program) {
foreach($program[1] as $studi) {
$insideRows++;
}
}
foreach($jurusan as $program) {
$jurusanLine = true;
foreach($program[1] as $studi) {
echo '<tr>';
if($fakultasLine) {
echo '<td rowspan="' . $insideRows . '">' . $fakultas . '</td>';
$fakultasLine = false;
}
if($jurusanLine) {
echo '<td rowspan="' . count($program[1]) . '">' . $program[0] . '</td>';
$jurusanLine = false;
}
echo '<td>' . $studi . '</td>';
echo '</tr>';
}
}
}
?>
您的完整代码段看起来有点像这样:
<!DOCTYPE html>
<html>
<head>
<style>
table,
th,
td {
border: 1px solid black;
border-collapse: collapse;
}
th,
td {
padding: 5px;
text-align: left;
}
</style>
</head>
<body>
<?php
$ub = array(
"Fakultas Ilmu Komputer" => array(
array(
"Jurusan Teknik Informatika",
array(
"Prodi Teknik Informatika",
"Prodi Teknik Komputer",
"Prodi Magister Ilmu Komputer"
)
),
array(
"Jurusan Sistem Informasi",
array(
"Prodi Sistem Informasi",
"Prodi Teknologi Informasi",
"Prodi Pendidikan Teknologi Informasi"
)
)
),
"Fakultas Kedokteran" => array(
array(
"Jurusan Kedokteran",
array(
"Prodi Pendidikan Dokter"
)
),
array(
"Jurusan Keperawatan dan Gizi",
array(
"Prodi Ilmu Keperawatan",
"Prodi Ilmu Gizi",
"Prodi Farmasi",
"Prodi Kebidanan"
)
)
)
);
?>
<table>
<tr>
<th>Fakultas</th>
<th>Jurusan</th>
<th>Program Studi</th>
</tr>
<?php
foreach($ub as $fakultas => $jurusan) {
$fakultasLine = true;
// calculate inside rows per row
$insideRows = 0;
foreach($jurusan as $program) {
foreach($program[1] as $studi) {
$insideRows++;
}
}
foreach($jurusan as $program) {
$jurusanLine = true;
foreach($program[1] as $studi) {
echo '<tr>';
if($fakultasLine) {
echo '<td rowspan="' . $insideRows . '">' . $fakultas . '</td>';
$fakultasLine = false;
}
if($jurusanLine) {
echo '<td rowspan="' . count($program[1]) . '">' . $program[0] . '</td>';
$jurusanLine = false;
}
echo '<td>' . $studi . '</td>';
echo '</tr>';
}
}
}
?>
</table>
</body>
</html>
答案 1 :(得分:-1)