Bei der Entwicklung von Webanwendungen sind die Anzeigeanforderungen für die Klassifizierung auf mehreren Ebenen sehr häufig, wie z. B. Produktklassifizierung, Artikelklassifizierung, Berechtigungsmenü usw. Die Klassifizierung auf Infinite-Ebene als Struktur, die die Verschachtelung auf jeder Ebene unterstützt, ist eine ideale Lösung, um solche Anforderungen zu erfüllen. In diesem Artikel wird ausführlich eingeführt, wie PHP verwendet wird, um eine effiziente Klassifizierungsbaumstruktur auf Infinite-Ebene zu erstellen.
Um eine Klassifizierung auf unendlicher Ebene zu erreichen, ist zuerst eine angemessene Struktur der Datentabelle erforderlich. Normalerweise verwenden wir eine einfache Selbstassoziationstabelle, um klassifizierte Daten zu speichern.
CREATE TABLE categories (
id INT PRIMARY KEY AUTO_INCREMENT,
parent_id INT NOT NULL,
name VARCHAR(50) NOT NULL
);
In der Tabelle ist ID die eindeutige Kennung jeder Kategorie, Eltern_ID repräsentiert die übergeordnete Klasse, die Eltern der obersten Ebene wird normalerweise auf 0 gesetzt, und der Name ist der Kategorienname.
Vor der Anzeige der Baumstruktur müssen Sie zunächst die vollständigen Klassifizierungsdaten aus der Datenbank extrahieren und verschachtelte Beziehungen rekursiv generieren:
function getCategories($parent_id = 0) {
$categories = [];
$query = "SELECT id, name FROM categories WHERE parent_id = :parent_id";
$stmt = $pdo->prepare($query);
$stmt->execute(['parent_id' => $parent_id]);
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$categories[$row['id']] = [
'id' => $row['id'],
'name' => $row['name'],
'children' => getCategories($row['id'])
];
}
return $categories;
}
Der obige Code erstellt rekursiv einen vollständigen Klassifizierungsbaum, und jede Klassifizierung enthält Informationen zu allen Unterkategorien.
Aufrufen Beispiel:
$categories = getCategories();
Um die klassifizierten Daten auf einer Webseite klar anzuzeigen, können wir nicht ordnungsgemäße Listenelemente von HTML verwenden und sie rekursiv rendern:
function renderCategories($categories) {
echo '<ul>';
foreach ($categories as $category) {
echo '<li>' . $category['name'] . '</li>';
if (!empty($category['children'])) {
echo '<ul>';
renderCategories($category['children']);
echo '</ul>';
}
}
echo '</ul>';
}
renderCategories($categories);
Diese Funktion entfaltet die verschachtelte Klassifizierungsschicht für Schicht durch rekursive Methode und zeigt sie im HTML -Format mit klar hierarchischer Struktur an.
Der Kern der Verwendung von PHP zur Implementierung einer Klassifizierungsbaumstruktur auf unendlicher Ebene liegt in der rekursiven Verarbeitung und einer angemessenen Anzeige von Daten. Diese Methode ist sehr praktisch, sei es in Content -Management -Systemen oder in der Produktklassifizierung. Ich hoffe, dass die Erklärung in diesem Artikel Ihnen helfen kann, die Implementierungsmethoden der unendlichen Klassifizierung besser zu verstehen und anzuwenden.