Rumah > Artikel > pembangunan bahagian belakang > Cara menggunakan fungsi klasifikasi tanpa had dalam pembangunan PHP
Dengan perkembangan pesat Internet, fungsi dan keperluan laman web menjadi semakin kompleks. Antaranya, fungsi pengelasan tanpa had adalah cara yang sangat penting untuk mengatur dan mengurus maklumat. Ia boleh membantu pembangun menyusun maklumat dengan berkesan supaya pengguna dapat mencari perkara yang mereka perlukan dengan lebih cepat. Hari ini, kami akan memperkenalkan cara menggunakan fungsi pengelasan tanpa had dalam pembangunan PHP.
Apakah fungsi pengelasan tanpa had?
Dalam pengelasan tradisional, setiap kategori hanya boleh mempunyai satu kategori ibu bapa dan beberapa kategori anak. Walau bagaimanapun, dalam beberapa senario yang kompleks, kaedah pengelasan ini akan dihadkan. Sebagai contoh, produk mungkin tergolong dalam berbilang jenama, berbilang kumpulan klasifikasi, berbilang wilayah dan sebagainya. Pada masa ini, fungsi pengelasan tanpa had boleh memberikan penyelesaian yang lebih baik.
Fungsi pengelasan tanpa had, seperti namanya, tidak mempunyai sekatan tahap Pengelasan boleh digabungkan secara bebas, dan satu data boleh tergolong dalam berbilang kategori. Fungsi ini sesuai untuk senario yang memerlukan organisasi data yang fleksibel, seperti klasifikasi blog, klasifikasi produk, klasifikasi berita, dsb.
Cara melaksanakan fungsi pengelasan tanpa had
Di bawah, kami akan memperkenalkan langkah demi langkah cara melaksanakan fungsi pengelasan tanpa had dalam pembangunan PHP.
Langkah 1: Buat jadual pangkalan data
Apabila mencipta jadual pangkalan data, kita perlu mempertimbangkan tiga medan utama, iaitu ID kategori, nama kategori dan ID induk kategori. ID kategori ialah pengecam unik bagi setiap kategori, nama kategori digunakan untuk memaparkan maklumat kategori dan ID induk kategori menunjukkan ID kategori induk bagi kategori tersebut.
BUAT JADUAL categories
(
id
int(11) NOT NULL,
name
varchar(100) NOT NULL,
parent_id
int(11) NOT NULL,
PRIMARY KEY (id
)
);
第二步:插入分类数据
在数据库表中插入分类数据时,可以使用嵌套集合模型的方式,即用左右值描述每个分类层级组织关系,示例如下:
INSERT INTO categories
(id
, name
, parent_id
, lft
, rgt
PRIMARY KEY (id
)
);
name
, parent_id
, lft
, rgt
) VALUES(1, 'Elektrik perkakas', 0, 1, 10),
(2, ' TV', 1, 2, 3),(3, 'Perkakas telefon mudah alih', 1, 4, 9),
(4, 'Telefon pintar', 3, 5, 6),
{
}
. Dalam fungsi ini, kami mula-mula menanyakan semua subkategori di bawah kategori induk semasa dan mengisihnya mengikut lvalue. Kemudian, dengan memanggil dirinya secara rekursif, subkategori subkategori disoal dan disimpan dalam medan kanak-kanak. Akhirnya, tatasusunan kategori dikembalikan.
Langkah 4: Paparkan data kategori
Apabila memaparkan data kategori, kita boleh menggunakan rekursif traversal Contohnya adalah seperti berikut:
🎜function showCategories($categories)🎜{🎜$sql = 'SELECT * FROM `categories` WHERE `parent_id` = ? ORDER BY `lft` ASC'; $stmt = $pdo->prepare($sql); $stmt->execute([$parentId]); $categories = $stmt->fetchAll(PDO::FETCH_ASSOC); if (!empty($categories)) { $level++; $categories = array_map(function ($category) use ($level) { $category['level'] = $level; $category['children'] = getCategories($category['id'], $level); return $category; }, $categories); } return $categories;🎜}🎜 pertama kita tentukan. sama ada tatasusunan kategori kosong Jika tidak, lalu lintasi tatasusunan dan paparkan nama kategori. Kemudian, jika kategori mempunyai subkategori, panggil dirinya secara rekursif untuk memaparkan subkategori. 🎜🎜Kesimpulan🎜🎜Melalui empat langkah di atas, kita boleh melaksanakan fungsi pengelasan tanpa had dengan mudah, dan juga boleh menggunakan kaedah rekursif untuk memaparkan data terperingkat. Fungsi ini sangat biasa dalam pembangunan sebenar, terutamanya dalam e-dagang, berita, blog dan senario lain. Saya harap artikel ini dapat memberi inspirasi kepada pembangun PHP dan membantu mereka mengatasi keperluan pembangunan sebenar dengan lebih baik. 🎜
Atas ialah kandungan terperinci Cara menggunakan fungsi klasifikasi tanpa had dalam pembangunan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!