Menampilkan tabel dengan rowspan di PHP

Contoh koding untuk menampilkan tabel dengan rowspan di PHP

Misalkan ada data berisi array seperti berikut ini

$data = array();

$data[] = array(
    'fakultas' => 'Teknik',
    'jurusan' => array(
        array(
            'kode_jurusan' => 'FT01',
            'nama_jurusan' => 'Teknik Informatika',
        ),
        array(
            'kode_jurusan' => 'FT02',
            'nama_jurusan' => 'Teknik Sipil',
        ),
        array(
            'kode_jurusan' => 'FT03',
            'nama_jurusan' => 'Teknik Elektro',
        ),
    ),
);

$data[] = array(
    'fakultas' => 'Ekonomi',
    'jurusan' => array(
        array(
            'kode_jurusan' => 'FE01',
            'nama_jurusan' => 'Ekonomi Kreatif',
        ),
        array(
            'kode_jurusan' => 'FE02',
            'nama_jurusan' => 'Perbankan',
        ),
    ),
);

Contoh tabelnya menggunakan Bootstrap

<table class="table table-bordered">
    <thead>
        <tr>
            <th>No</th>
            <th>Fakultas</th>
            <th>Jurusan</th>
        </tr>
    </thead>
    <tbody>
        <?php $no = 1 ?>
        <?php foreach ($data as $row) : ?>
            <?php $rowspan = count($row['jurusan']) ?>
            <?php foreach ($row['jurusan'] as $key => $j) : ?>
                <tr>
                    <?php if ($key == 0) : ?>
                        <td rowspan="<?= $rowspan ?>"><?= $no++ ?></td>
                        <td rowspan="<?= $rowspan ?>"><?= $row['fakultas'] ?></td>
                    <?php endif; ?>
                    <td><?= $j['kode_jurusan'] . ' - ' . $j['nama_jurusan'] ?></td>
                </tr>
            <?php endforeach; ?>
        <?php endforeach; ?>
    </tbody>
</table>
  • Data di looping lalu dihitung jumlah rowspan nya berdasarkan jumlah data jurusan
  • Lalu di looping lagi untuk data jurusannya dengan tambahan $key jadi bisa diakses untuk variabel $key nya
  • Pengkondisian $key == 0 dilakukan untuk baris pertama saja dari data jurusan
  • Jadi hanya data pertama saja yang akan ditambahkan rowspan

Hasil dari script tersebut seperti ini

Screenshot tabel dengan rowspan

Screenshot tabel dengan rowspan