العودية لإنشاء شجرة القائمة
في حالتك، لديك بنية قاعدة بيانات حيث تحتوي الفئات على حقل "جذر" يشير إلى الفئة الأصلية الخاصة بها . تتضمن مخرجات 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 باستخدام قوائم متداخلة.
لاستخدام هذه الوظيفة:
اختياريًا، يمكنك تعديل الوظيفة لتجنب القوائم الفارغة عن طريق التحقق مما إذا كانت الفئة تحتوي على فئات فرعية قبل إنشاء القائمة:
function recurse($categories, $parent = null, $level = 0) {
$ret = '';
foreach ($categories as $index => $category) {
if ($category['root'] == $parent) {
$ret .= '' . $category['name'] . '
';
$sub = $this->recurse($categories, $category['id'], $level 1);
if ($sub != '
') {
$ret .= $sub;
}
$ret .= ' ';
}
}
return $ret . '
';
}
لن تقوم هذه الوظيفة المعدلة بإنشاء قوائم إلا إذا كانت الفئة تحتوي على طفل واحد على الأقل.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3