אתה יכול לעשות מערך 2/3 מימדים, כמה שתירצה.
ולשמור בו את הLEVEL, תת אב ושם התקיה.
ואז לרוץ ברקורסיה על המערך.
אני לא יודע עד כמה זה יותר יעיל, אבל מה שכן, לפחות זה קורה למסד רק פעם אחת, וזהו.
אתה יכול גם להעביר את זה לצד לקוח, אם זה לא קריטי לך שבקוד זה לא יהיה מסודר ככה, אלא במערך.
ואז זה יהיה הרבה יותר יעיל..
הכוונה הייתה למערך תלת מימדי (או דו מימדי אם זה מספיק).