ABA


"צריך עזרה בעבודה מתקדמת עם מערכים בphp"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #22180 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 22180
code_blue  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 5.7.06
21280 הודעות, 7 פידבק
   19:53   25.04.18   
אל הפורום  
  צריך עזרה בעבודה מתקדמת עם מערכים בphp  
 
   אני רוצה לבנות ממשק שמקבל קובץ csv ואז צריך לחלץ משם מספר צורות של מידע
1. צמדים : לעשות אגריגציה של כל השורות שיש בהם נתון x בתא 1 ונתון y בתא 2
למשל
|תא 1 = אאא| |תא 2 = בבב| |תא 3 = 5|
|תא 1 = אאא| |תא 2 = בבב| |תא 3 = 2|
|תא 1 = דדד| |תא 2 = ההה| |תא 3 = 5|

התוצאה הרצויה:
|תא 1 = אאא| |תא 2 = בבב| |תא 3 =7|
|תא 1 = דדד| |תא 2 = ההה| |תא 3 = 5|


2. כמות חזרה של נתון מסויים
למשל לפי הדוגמא לעיל לייצר עוד את מערך עם כמות חזרה
לדוגמא לתוצאה רצויה :
|תא 1 = אאא | |תא 2 = 2|
|תא 1 = דדד | |תא 2 = 1|

3. ביצוע מיון לפי עמודה
אם נסתכל בדוגמא אז שאוכל להציג מאותו מערך
פעם מידע שנבנה לפי סדר יורד מספרי של עמודות תא 1 ולשימוש אחר לפי סדר יורד מספרי של עמודות

4. שילוב של כמה מטודולוגיות
מיון לפי עמודות של תא 1 וביצוע אגריגציה של נתונים

מנסה לבנות GUI פשוט שיציג לי נתונים בטבלאות ובתצורות פאי של שימוש
בגדול זה ישמש לקבל נתוני netflow ממתגים והצגתם בחינם

תודה מראש

נשלח ע"י הסלולרי


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  אתה מצפה שאנשים פה יכתבו לך את הקוד? באמת... Ben_d 25.04.18 22:45 1
     אני ביקשתי שיכתבו לי את הקוד? code_blue  26.04.18 07:58 3
  ממליץ לך לטעון את הקובץ CSV ישירות לטבלה חדשה בDB sza  26.04.18 00:01 2
     תודה רבה code_blue  26.04.18 07:59 4
         המ... עשיתי משהו דומה לדוגמא הראשונה לא מזמן: Ice Cold  26.04.18 10:38 5
             נסה לפי הלוגיקה של הפתרון שלי להגיע לפתרון של הדרישה השניה :) Ice Cold  26.04.18 10:40 6
             המון תודה code_blue  26.04.18 19:17 9
                 המשכתי לשחק עם הקוד והצלחתי להגיע לאחלה תוצאה code_blue  26.04.18 22:12 10
                     עשיתי מהלך מגעיל אבל הגעתי לתוצאה רצויה code_blue  27.04.18 08:28 11
                     חחח תודה רבה:) היא כבר בת חודש:) Ice Cold  27.04.18 14:09 12
                         אז מה תכננת כדי להרדים אותה code_blue  27.04.18 17:33 13
                             הקוד שלי לא עובד עליה. יש לה מערכת הפעלה שאני לא מכיר... :/ Ice Cold  29.04.18 09:06 14
                                 חחחחחחחחח מוכר code_blue  29.04.18 17:02 15
  הדרך הנכונה לעבודה כנראה תהיה עם dictionaries BarniRull 26.04.18 10:50 7
     דו מימדי. לשני התאים והמספר ב VALUE. Ice Cold  26.04.18 11:47 8

       
Ben_d
חבר מתאריך 15.6.16
706 הודעות
   22:45   25.04.18   
אל הפורום  
  1. אתה מצפה שאנשים פה יכתבו לך את הקוד? באמת...  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
code_blue  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 5.7.06
21280 הודעות, 7 פידבק
   07:58   26.04.18   
אל הפורום  
  3. אני ביקשתי שיכתבו לי את הקוד?  
בתגובה להודעה מספר 1
 
   ביקשתי עזרה עם מצב מסויים שאני נתקל בו
אני יודע לקרוא את התוכן מה CSV למערך, יותר להוציא נתונים מהמערך
אבל מה שכתבתי נתקלתי בו וביקשתי סיוע

כל שאלה שהיא שעולה פה היא עזרה כזאת או אחרת על כתיבת קוד הלא כך ?!

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


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
sza  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 26.4.02
12357 הודעות, 22 פידבק
   00:01   26.04.18   
אל הפורום  
  2. ממליץ לך לטעון את הקובץ CSV ישירות לטבלה חדשה בDB  
בתגובה להודעה מספר 0
 

(יכולה להיות טבלה זמנית שמושמדת מיד בסוף הסקריפט)
את כל הפעולות שביקשת *מאד* פשוט לבצע בSQL. הוא ממש בנוי לזה.
בקוד PHP יבש יהיה לך יותר מסובך לממש את זה. (אם אתה משתמש בפריימוורק כלשהי ייתכן שיהיה לך אפשרות פשוטה לממש את זה גם בלי DB. לדוגמה, לlaravel יש Collections ואת eloquent שיכולים לעזור לך בביצוע פעולות כאלו גם כבר ברמת הקוד. אבל אלו ספריות ולא ציינת בהודעה במה אתה משתמש).


צחי.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
code_blue  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 5.7.06
21280 הודעות, 7 פידבק
   07:59   26.04.18   
אל הפורום  
  4. תודה רבה  
בתגובה להודעה מספר 2
 
   האמתש אני עובד בצורה קצת פרטצית בלי DB ובלי שום פריימוורק חיצוני
PHP טהור ונקי

@sza@


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Ice Cold  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 3.8.02
28041 הודעות, 19 פידבק
   10:38   26.04.18   
אל הפורום  
  5. המ... עשיתי משהו דומה לדוגמא הראשונה לא מזמן:  
בתגובה להודעה מספר 4
 
קצת מסורבל בתוך הלולאה, אבל אתה יכול לפשט עם משתנים:

$lines = [
["AAA","BBB",3],
["AAA","BBB",6],
["CCC","BBB",4],
];

$results = [];

foreach ($lines as $line) {
$results[$line[0]] = (isset($results[$line[0]])) ? $results[$line[0]] : [];
$results[$line[0]][$line[1]] = isset($results[$line[0]][$line[1]]) ? $results[$line[0]][$line[1]] + $line[2] : $line[2];
}

print_r($results);


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Ice Cold  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 3.8.02
28041 הודעות, 19 פידבק
   10:40   26.04.18   
אל הפורום  
  6. נסה לפי הלוגיקה של הפתרון שלי להגיע לפתרון של הדרישה השניה :)  
בתגובה להודעה מספר 5
 
@code_blue@


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
code_blue  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 5.7.06
21280 הודעות, 7 פידבק
   19:17   26.04.18   
אל הפורום  
  9. המון תודה  
בתגובה להודעה מספר 5
 
   עבר עריכה לאחרונה בתאריך 26.04.18 בשעה 21:03 על-ידי Ice Cold (מנהל הפורום)
 
אני אנסה את זה

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


Array
(
[0] => Array
(
[0] => AAA
[1] => BBB
[2] => 9
)

[1] => Array
(
[0] => CCC
[1] => BBB
[2] => 4
)

)


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
code_blue  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 5.7.06
21280 הודעות, 7 פידבק
   22:12   26.04.18   
אל הפורום  
  10. המשכתי לשחק עם הקוד והצלחתי להגיע לאחלה תוצאה  
בתגובה להודעה מספר 9
 
   שיחקת אותה !!!!
מהמערך הזה שנוצר אני אצור מערך בצורה שרציתי ואז אוכל לשחק טוב יותר עם מיון (שכבר עשיתי למערך לפני האגריגציה עכשיו הוא אשכרה יהיה נכון)
קצת פיתחתי את זה שיראה יותר כמו המידע שיש לי


function print_r2($data) {
echo "<pre>";
print_r($data);
echo "</pre>";
}

$lines = ,
["1.1.1.1","2.2.2.2",10,10,TCP,3389],
["1.1.1.1","2.2.2.2",100,100,UDP,49],
["1.1.1.1","3.3.3.3",6,100,TCP,80],
["4.4.4.4","2.2.2.2",4,25,TCP,80],
["1.1.1.1","2.2.2.2",10,10,TCP,3389],
["1.1.1.1","2.2.2.2",100,100,UDP,49],
];

$results = [];

foreach ($lines as $line) {
$results[$line[0]] = (isset($results[$line[0]])) ? $results[$line[0]] : [];
$results[$line[0]][$line[1]][$line[4]][$line[5]][pktsin] = isset($results[$line[0]][$line[1]][$line[4]][$line[5]][pktsin]) ? $results[$line[0]][$line[1]][$line[4]][$line[5]][pktsin] + $line[2] : $line[2];
$results[$line[0]][$line[1]][$line[4]][$line[5]][bytesin] = isset($results[$line[0]][$line[1]][$line[4]][$line[5]][bytesin]) ? $results[$line[0]][$line[1]][$line[4]][$line[5]][bytesin] + $line[3] : $line[3];

}

print_r2($results);

התוצאה:


Array
(
[SRCIP] => Array
(
[DSTIP] => Array
(
[protocol] => Array
(
[port] => Array
(
[pktsin] => pktsin
[bytesin] => bytesin
)

)

)

)

[1.1.1.1] => Array
(
[2.2.2.2] => Array
(
[TCP] => Array
(
[3389] => Array
(
[pktsin] => 20
[bytesin] => 20
)

)

[UDP] => Array
(
[49] => Array
(
[pktsin] => 200
[bytesin] => 200
)

)

)

[3.3.3.3] => Array
(
[TCP] => Array
(
[80] => Array
(
[pktsin] => 6
[bytesin] => 100
)

)

)

)

[4.4.4.4] => Array
(
[2.2.2.2] => Array
(
[TCP] => Array
(
[80] => Array
(
[pktsin] => 4
[bytesin] => 25
)

)

)

)

)



@Ice Cold@
**** נ.ב חשוב -מזל טוב להולדת הבת (נראה לי ככה כתבו באשכול אחר)


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
code_blue  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 5.7.06
21280 הודעות, 7 פידבק
   08:28   27.04.18   
אל הפורום  
  11. עשיתי מהלך מגעיל אבל הגעתי לתוצאה רצויה  
בתגובה להודעה מספר 10
 
   הקוד:

function print_r2($data) {
echo "<pre>";
print_r($data);
echo "</pre>";
}

$lines = [
["SRCIP","DSTIP","pktsin","bytesin","protocol","port"],
["1.1.1.1","2.2.2.2",1,10,TCP,3389],
["1.1.1.1","2.2.2.2",1,100,UDP,49],
["1.1.1.1","3.3.3.3",1,100,TCP,80],
["4.4.4.4","2.2.2.2",1,25,TCP,80],
["1.1.1.1","2.2.2.2",1,10,TCP,3389],
["1.1.1.1","2.2.2.2",1,100,UDP,49],
];

$results = [];

foreach ($lines as $line) {
$results[$line[0]] = (isset($results[$line[0]])) ? $results[$line[0]] : [];
$results[$line[0]][$line[1]][$line[4]][$line[5]]['pktsin'] = isset($results[$line[0]][$line[1]][$line[4]][$line[5]][pktsin]) ? $results[$line[0]][$line[1]][$line[4]][$line[5]][pktsin] + $line[2] : $line[2];
$results[$line[0]][$line[1]][$line[4]][$line[5]]['bytesin'] = isset($results[$line[0]][$line[1]][$line[4]][$line[5]][bytesin]) ? $results[$line[0]][$line[1]][$line[4]][$line[5]][bytesin] + $line[3] : $line[3];

}

$co=0;

//print_r2($results);

foreach ($results as $key => $value) {
$sa=$key;
foreach ($results[$sa] as $key => $value) {
$da=$key;
foreach ($results[$sa][$da] as $key => $value) {
$proto=$key;
foreach ($results[$sa][$da][$proto] as $key => $value) {
$port=$key;
$pktsin= $results[$sa][$da][$proto][$port][pktsin];
$bytesin=$results[$sa][$da][$proto][$port][bytesin];
$arr_aggr[$co]=[$sa,$da,$proto,$port,$bytesin,$pktsin];
$co++ ;
}
}
}
}

print_r2($arr_aggr);

התוצאה:


Array
(
[0] => Array
(
[0] => SRCIP
[1] => DSTIP
[2] => protocol
[3] => port
[4] => bytesin
[5] => pktsin
)

[1] => Array
(
[0] => 1.1.1.1
[1] => 2.2.2.2
[2] => TCP
[3] => 3389
[4] => 20
[5] => 2
)

[2] => Array
(
[0] => 1.1.1.1
[1] => 2.2.2.2
[2] => UDP
[3] => 49
[4] => 200
[5] => 2
)

[3] => Array
(
[0] => 1.1.1.1
[1] => 3.3.3.3
[2] => TCP
[3] => 80
[4] => 100
[5] => 1
)

[4] => Array
(
[0] => 4.4.4.4
[1] => 2.2.2.2
[2] => TCP
[3] => 80
[4] => 25
[5] => 1
)

)


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Ice Cold  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 3.8.02
28041 הודעות, 19 פידבק
   14:09   27.04.18   
אל הפורום  
  12. חחח תודה רבה:) היא כבר בת חודש:)  
בתגובה להודעה מספר 10
 

נשלח ע"י הסלולרי


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
code_blue  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 5.7.06
21280 הודעות, 7 פידבק
   17:33   27.04.18   
אל הפורום  
  13. אז מה תכננת כדי להרדים אותה  
בתגובה להודעה מספר 12
 
   @Ice_Cold@

נשלח ע"י הסלולרי


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Ice Cold  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 3.8.02
28041 הודעות, 19 פידבק
   09:06   29.04.18   
אל הפורום  
  14. הקוד שלי לא עובד עליה. יש לה מערכת הפעלה שאני לא מכיר... :/  
בתגובה להודעה מספר 13
 
@code_blue@


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
code_blue  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 5.7.06
21280 הודעות, 7 פידבק
   17:02   29.04.18   
אל הפורום  
  15. חחחחחחחחח מוכר  
בתגובה להודעה מספר 14
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
BarniRull
חבר מתאריך 1.8.02
1420 הודעות
   10:50   26.04.18   
אל הפורום  
  7. הדרך הנכונה לעבודה כנראה תהיה עם dictionaries  
בתגובה להודעה מספר 0
 
אבל גוגל אומר שכנראה זה לא קיים ב php ,
אז מערך תלת מימדי נראה לי פתרון גם קל לבעיה שלך


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Ice Cold  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 3.8.02
28041 הודעות, 19 פידבק
   11:47   26.04.18   
אל הפורום  
  8. דו מימדי. לשני התאים והמספר ב VALUE.  
בתגובה להודעה מספר 7
 


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net