"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > मूल श्रेणियों वाले डेटाबेस से नेस्टेड मेनू ट्री उत्पन्न करने के लिए रिकर्सन का उपयोग कैसे किया जा सकता है?

मूल श्रेणियों वाले डेटाबेस से नेस्टेड मेनू ट्री उत्पन्न करने के लिए रिकर्सन का उपयोग कैसे किया जा सकता है?

2024-11-07 को प्रकाशित
ब्राउज़ करें:994

How can recursion be used to generate a nested menu tree from a database with parent categories?

मेनू ट्री जेनरेशन के लिए रिकर्सन

आपकी स्थिति में, आपके पास एक डेटाबेस संरचना है जहां श्रेणियों में एक 'रूट' फ़ील्ड होता है जो उनकी मूल श्रेणी को दर्शाता है . आप जो HTML आउटपुट चाहते हैं उसमें श्रेणी पदानुक्रम का प्रतिनिधित्व करने वाली नेस्टेड सूचियाँ शामिल हैं। इसे प्राप्त करने के लिए, एक पुनरावर्ती PHP फ़ंक्शन को नियोजित किया जा सकता है।

यहां एक उदाहरण फ़ंक्शन है:

function recurse($categories, $parent = null, $level = 0) {
    $ret = '
    '; foreach ($categories as $index => $category) { if ($category['root'] == $parent) { $ret .= '
  • ' . $category['name'] . '

    '; $ret .= $this->recurse($categories, $category['id'], $level 1); $ret .= '
  • '; } } return $ret . '
'; }

यह फ़ंक्शन मानता है कि रूट श्रेणियों में शून्य मान वाला 'रूट' फ़ील्ड होता है। यह श्रेणियों के माध्यम से पुनरावृत्ति करता है, उनके 'रूट' फ़ील्ड के आधार पर बाल श्रेणियों की पहचान करता है, और नेस्टेड सूचियों का उपयोग करके HTML का निर्माण करता है।

इस फ़ंक्शन का उपयोग करने के लिए:

  1. अपने डेटाबेस को क्वेरी करें श्रेणियों की बहुआयामी सरणी। &&&]
  2. नेस्टेड मेनू ट्री को प्रदर्शित करने के लिए $Tree वेरिएबल को इको करें।
  3. वैकल्पिक रूप से, आप सूची बनाने से पहले यह जांच कर खाली सूचियों से बचने के लिए फ़ंक्शन को संशोधित कर सकते हैं कि श्रेणी में चाइल्ड श्रेणियां हैं या नहीं:
  4. फ़ंक्शन रिकर्स ($श्रेणियाँ, $पैरेंट = शून्य, $स्तर = 0) { $ret = '
    '; foreach ($सूचकांक के रूप में श्रेणियाँ => $श्रेणी) { अगर ($श्रेणी['रूट'] == $पैरेंट) { $ret .= '
  • ' . $श्रेणी['नाम'] . '

    '; $sub = $this->recurse($श्रेणियाँ, $श्रेणी['id'], $स्तर 1); यदि ($sub != '
      ') { $ret .= $sub; } $ret .= '
    • '; } } वापसी $ret . '
    '; }

    यह संशोधित फ़ंक्शन केवल सूचियां बनाएगा यदि श्रेणी में कम से कम एक बच्चा है।

    नवीनतम ट्यूटोरियल अधिक>

    चीनी भाषा का अध्ययन करें

    अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

    Copyright© 2022 湘ICP备2022001581号-3