Buyur hocam mantık bu şekilde diziler yerine veritabanından bilgileri çekiniz.
Mantığı anlatayım, kitaplar dizisinde bir kategori idsi bulunacak kategoriler dizisindeki id ile eşleşiyorsa ona ait veriler gelicek. Basit birşey aslında mantık kurunca kod kısmı kolay . Hayırlı işler
<?php
$kitaplar = [
['id' => 1, 'baslik' => "PHP KURSLARI", 'kategori' => 7],
['id' => 2, 'baslik' => "JAVASCRİPT KURSLARI", 'kategori' => 15],
['id' => 3, 'baslik' => "REACT KURSLARI", 'kategori' => 15],
];
$kategoriler = [
['id' => 7, 'baslik' => "SIFIRDAN PHP ÖĞREN"],
['id' => 15, 'baslik' => "SIFIRDAN JAVASCRİPT ÖĞREN"],
];
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Bootstrap demo</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0-beta1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-0evHe/X+R7YkIZDRvuzKMRqM+OrBnVFBL6DOitfPri4tjfHxaWutUpFmBp4vmVor" crossorigin="anonymous">
</head>
<body>
<nav>
<div class="nav nav-tabs" id="nav-tab" role="tablist">
<?php foreach ($kategoriler as $kategori_key => $kategori) { ?>
<button class="nav-link <?= ($kategori_key == 0) ? 'active' : '' ?>" id="nav-<?= $kategori['id'] ?>-tab" data-bs-toggle="tab" data-bs-target="#nav-<?= $kategori['id'] ?>" type="button" role="tab" aria-controls="nav-home" aria-selected="true"><?= $kategori['baslik'] ?></button>
<?php } ?>
</div>
</nav>
<div class="tab-content" id="nav-tabContent">
<?php foreach ($kategoriler as $kategori_key => $kategori) { ?>
<div class="tab-pane fade <?= ($kategori_key == 0) ? 'show active' : '' ?>" id="nav-<?= $kategori['id'] ?>" role="tabpanel" aria-labelledby="nav-home-tab" tabindex="0">
<?php foreach ($kitaplar as $kitap_key => $kitap) { ?>
<?php if($kitap['kategori'] == $kategori['id']) { ?>
<p><?= $kitap['baslik'] ?></p>
<?php } } ?>
</div>
<?php } ?>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0-beta1/dist/js/bootstrap.bundle.min.js" integrity="sha384-pprn3073KE6tl6bjs2QrFaJGz5/SUsLqktiwsUTF55Jfv3qYSDhgCecCxMW52nD2" crossorigin="anonymous"></script>
</body>
</html>