עזרה עם אלגוריתם של לולאות עם משתנים קשורים

Whisky Bar

New member
עזרה עם אלגוריתם של לולאות עם משתנים קשורים

שלום אנשים,

אני צריך עזרה קטנה עם אלגוריתם של ללולאות . יש לי מערך שמכיל את הנתונים הבאים : ID, LOW VALUE, HIGH VALUE, RELATED ID

מה שאני עושה זה לולאות שרצות על כל משתנה מ Low value עד ל High value .

עד כאן , הכל נחמד וקליל .. הבעיה היא שאני צריך להיות מסוגל להשתמש ב Related ID . המשמעות של ה Related ID היא , שאני מקדם את המשתנה רק כשה Related ID שעליו הוא מצביע מתאפס ..

לדוכמא :

p1 = X
p1_low = 1
p1_high = 2
p2 = X2
p2_low = 2
p2_high = 3
p2_related_param = 3
p3 = X3
p3_low = 3
p3_high = 4
p3_related_param = 3


עוד כמה פרטים :
המשתנה הראשון הוא העיקרי , ולעולם לא יהיה תלוי באף אחד .
משתנה יכול להיות תלוי בעצמו
כל משתנה יכול להיות תלוי רק במשתנה אחד .

הלולאה הראשית היא :

for ($i=$_POST['p1_low'];$i<=$_POST['p1_high'];$i++)
{

{


בסוף הלולאה , אני צריך לבצע את העידכונים של כל שאר הפרמטרים , ופה הבעיה . אני לא יודע איך לגשת לזה . אני צריך פונקציה רקורסיבית , שתעבור על המערך ותמצא :
לכל משתנה תבדוק , האם הוא קשור במשתנה אחר , אם כן , אז תריץ את הפונקציה שוב , הפעם על המשתנה ההוא . אם לא , אז תבדוק האם הגעתי לסוף הלולאה , ואם כן תאפס את המשתנה .
פה הבעיה , לפני שאני מאפס את המשתנה , אני צריך לרוץ שוב על כל המערך ולבדוק אילו משתנים קשורים למשתנה הזה , ולקדם אותם באחד .

אני נכנס פה למצב של רקורסיה בתוך רקורסיה ואני די מאבד את עצמי ..

למישהו יש רעיון ?
 

bnayal

New member
1. רקורסיה בתוך רקורסיה

זה מה שנקרא בעברית פשוטה - רקורסיה

2. ממש לא הבנתי מה עושה האלגוריתם שלך ובמה אתה צריך עזרה...
 

Whisky Bar

New member
עברית - אף פעם לא הייתי טוב בעברית :)

תודה על התגובה המהירה . כבר חצי שעה שאני מנסה לפרסם תגובה (ארוכה ומפורטת ) , אבל תפוז לא מוכנים לפרסם אותה - gateway timeout 504 .. כנראה זו לא העונה של התפוזים :)

אז אני אנסה לקצר , לצערי ולראות אם אני יכול לצרף את הקובץ במקום ..

בעיקרון אני בונה סקריפט שנועד לייצר סקריפטים לקינפוג סוויצים וראוטרים .

לדוגמא , יש לי את ה template :

interface X
ip address Y.0.0.Z 255.255.255.0


הסקריפט שלי לוקח את ה template הזה , ויודע להחליף את המחרוזות: X,Y,Z ולשכפל את הקוד מספר פעמים .. מה שיצא זה :

interface 100
ip address 1.0.0.1 255.255.255.255
interface 101
ip address 1.0.0.2 255.255.255.255
.....


הלולאה הראשונה די פשוטה , הבעיה שלי היא שאני צריך להיות מסוגל לקדם את Y רק ברגע ש Z מגיע למספר מסוים , בשביל ליצור מחרוזות כמו 1.0.0.1 , 1.0.0.2,1.0.0.3 .... 1.0.0.254 , 2.0.0.1 , 2.0.0.2 אני מקדם את Y רק ברגע ש Z מתאפס ..

אני אנסה לצרף את הקוד (האם ניתן לצרף קבצי PHP ?) , ומקווה שהפעם זה יצליח ..

אשמח לכל עזרה או עצה .
תודה
 
למעלה