vido adlı üyeden alıntı: mesajı görüntüle
senin tablo yapına göre. direkt kullanabilirsin.

function sinirsiz_kategori_agaci($kategoriler, $kategori_ust = 0)
{
    $html = '<ul class="class_ul">';
    foreach ($kategoriler as $kategori) {
        if ($kategori['kategori_ust'] == $kategori_ust) {
            $html .= '<li class="class_li"><a href="#url">' . $kategori['kategori'] . '</a>';
            $html .= sinirsiz_kategori_agaci($kategoriler, $kategori['kategori_id']);
            $html .= '</li>';
        }
    }
    $html .= '</ul>';

    return $html;
}
$kategoriler = []; //buraya tablo sorgusu gelecek.
echo sinirsiz_kategori_agaci( $kategoriler );
html çıktısı
<ul class="class_ul">
  <li class="class_li">
    <a href="#url">Yöresel ürünler</a>
    <ul class="class_ul"></ul>
  </li>
  <li class="class_li">
    <a href="#url">Süt ürünleri</a>
    <ul class="class_ul">
      <li class="class_li">
        <a href="#url">Kaşar</a>
        <ul class="class_ul">
          <li class="class_li">
            <a href="#url">Eski Kaşar</a>
            <ul class="class_ul"></ul>
          </li>
          <li class="class_li">
            <a href="#url">Taze Kasar</a>
            <ul class="class_ul"></ul>
          </li>
        </ul>
      </li>
      <li class="class_li">
        <a href="#url">Çeçil</a>
        <ul class="class_ul"></ul>
      </li>
    </ul>
  </li>
</ul>
Hocam çok teşekkür ederim ancak buraya kadar bir sorun yok. Benim istediğim ana kategorinin accordion başlığı olması ve alt kategorilerin ilgili accordion altında listelenmesi, vaktiniz varsa paylaştığım proje dosyalarını inceleyebilirseniz anlatmak istediğimi görebilirsiniz.