Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mencipta Pokok Menu Echo Menggunakan Fungsi Rekursif dalam PHP?
Mencipta fungsi rekursif untuk melintasi struktur menu hierarki yang disimpan dalam pangkalan data dan mengeluarkannya dalam HTML boleh mencabar. Memandangkan jadual dengan kategori dan kategori induknya, tugasnya ialah menjana pepohon menu yang mewakili hierarki secara visual.
Untuk menyelesaikan masalah ini, fungsi rekursif diperlukan. Ideanya adalah untuk bermula dengan kategori akar, cari anak-anaknya dan panggil fungsi secara rekursif pada setiap kanak-kanak, membina output HTML semasa kita pergi.
Berikut ialah kemungkinan pelaksanaan fungsi PHP:
<code class="php">function recurse($categories, $parent = null, $level = 0) { $ret = '<ul>'; foreach($categories as $index => $category) { if($category['root'] == $parent) { $ret .= '<li><a href="#"><p class="Tier' . $level . '">' . $category['name'] . '</p></a>'; $ret .= $this->recurse($categories, $category['id'], $level+1); $ret .= '</li>'; } } return $ret . '</ul>'; }</code>
Untuk menggunakan fungsi:
Pelaksanaan awal mungkin menghasilkan
<code class="php">function recurse($categories, $parent = null, $level = 0) { $ret = '<ul>'; foreach($categories as $index => $category) { if($category['root'] == $parent) { $ret .= '<li><a href="#"><p class="Tier' . $level . '">' . $category['name'] . '</p></a>'; $sub = $this->recurse($categories, $category['id'], $level+1); if($sub != '<ul></ul>') $ret .= $sub; $ret .= '</li>'; } } return $ret . '</ul>'; }</code>
Pengubahsuaian ini memastikan bahawa hanya kategori dengan kanak-kanak mempunyai
Sebagai alternatif, anda boleh menambah kiraan kanak-kanak pada setiap kategori dan hanya memasukkan
Atas ialah kandungan terperinci Bagaimana untuk Mencipta Pokok Menu Echo Menggunakan Fungsi Rekursif dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!