שאלה

מנחם מענדל מענדי
הודעות: 980
הצטרף: 16:42 28/04/2016

Re: שאלה

שליחהעל ידי מנחם מענדל מענדי » 17:51 26/06/2018

תנסה להבין מה התפקיד של השורה

קוד: בחירת הכל

$data_row = explode("-" , $row ) ;
ומה משמעותה,
ותחשוב איך אתה עושה את זה לא רק על ה "-" שמפריד בין אלמנטים מסוימים בטקסט , אלא גם על ה "(" וה ")" שצריכים להתפטר מהם קודם (אולי תעשה פשוט str_replace שיחליף אותם ל "-" ?)
הלכתי לפי מה שאמרת לי ותראה מה יצא

קוד: בחירת הכל

Array ( [0] => Array ( [05012345678] => [IVR_PATH] => [2018] => [07] => [21] => [13] => [42] => [44] => [] => [2/] => ) [1] => Array ( [05012345678] => [Current] => [2018] => [07] => [21] => [13] => [42] => [44] => [] => [199] => ) [2] => Array ( [05012345678] => [OFFSET] => [2018] => [07] => [21] => [13] => [42] => [44] => [] => [2882] => ) [3] => Array ( [p] => [IVR_PATH] => [2018] => [07] => [21] => [13] => [42] => [44] => [] => [2/] => ) [4] => Array ( [p] => [Current] => [2018] => [07] => [21] => [13] => [42] => [44] => [] => [199] => ) [5] => Array ( [p] => [OFFSET] => [2018] => [07] => [21] => [13] => [42] => [44] => [] => [2882] => ) )
כך לדוגמא את IVR_PATH! הוא פשוט מופיע פעמיים, כך שזה לא מודפס כמו מה שעשית לי עד עכשיו. וכוונתי בזה שיהיה מערך: טלפון, IVR_PATH, תאריך ושעה, Current, ו OFFSET.
ושזה לא ירוץ על עצמו כמו עכשיו.

אשמח שתעזור לי.
מצרף גם את הקובץ ששמתי בשרת.

קוד: בחירת הכל

<?php
$a="05012345678-IVR_PATH(2018-07-21-13-42-44)=2/
05012345678-Current(2018-07-21-13-42-44)=199
05012345678-OFFSET(2018-07-21-13-42-44)=2882
p-IVR_PATH(2018-07-21-13-42-44)=2/
p-Current(2018-07-21-13-42-44)=199
p-OFFSET(2018-07-21-13-42-44)=2882";
$a1=str_replace('(','-', $a);
$a2=str_replace(')','-', $a1);
$a3=str_replace('=','-', $a2);

foreach( explode("\r\n" , $a3) as $row) {
$data_row = explode("-" , $row ) ;
$info = array();
foreach( $data_row as $data ) {
$data = explode ( '-' , $data );
$key = $data[0] ;
$value = $data[1] ;
$info[$key] = $value ;
}
$all_info[]= $info;
}


print_r($all_info);

011371
הודעות: 997
הצטרף: 23:33 07/12/2017

Re: שאלה

שליחהעל ידי 011371 » 18:06 26/06/2018

אני ממש שמח ששמעת בקולי
אבל האם הבנת מה תפקיד השורה הנ"ל?

מנחם מענדל מענדי
הודעות: 980
הצטרף: 16:42 28/04/2016

Re: שאלה

שליחהעל ידי מנחם מענדל מענדי » 18:09 26/06/2018

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

011371
הודעות: 997
הצטרף: 23:33 07/12/2017

Re: שאלה

שליחהעל ידי 011371 » 18:13 26/06/2018

דרך אגב

קוד: בחירת הכל

$a1=str_replace('(','-', $a);
$a2=str_replace(')','-', $a1);
$a3=str_replace('=','-', $a2);
אפשר פשוט לכתוב

קוד: בחירת הכל

$a = str_replace ( array ( '(' , ')' , '=' ) , '-' , $a ) ;

011371
הודעות: 997
הצטרף: 23:33 07/12/2017

Re: שאלה

שליחהעל ידי 011371 » 18:14 26/06/2018

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

מנחם מענדל מענדי
הודעות: 980
הצטרף: 16:42 28/04/2016

Re: שאלה

שליחהעל ידי מנחם מענדל מענדי » 18:24 26/06/2018

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

מנחם מענדל מענדי
הודעות: 980
הצטרף: 16:42 28/04/2016

Re: שאלה

שליחהעל ידי מנחם מענדל מענדי » 18:25 26/06/2018

הצלחתי לעשות כאמור אבל הוא מראה לי את כל המערך כפול.
לכאורה הצלחתי אבל בפועל זה חוזר על עצמו-מה שלא קיים בקוד התקין שנתת לי.

מנחם מענדל מענדי
הודעות: 980
הצטרף: 16:42 28/04/2016

Re: שאלה

שליחהעל ידי מנחם מענדל מענדי » 18:32 26/06/2018

זה מה שהגדרתי

קוד: בחירת הכל

<?php
$a="05012345678-IVR_PATH(2018-07-21-13-42-44)=2/
05012345678-Current(2018-07-21-13-42-44)=199
05012345678-OFFSET(2018-07-21-13-42-44)=2882
p-IVR_PATH(2018-07-21-13-42-44)=2/
p-Current(2018-07-21-13-42-44)=199
p-OFFSET(2018-07-21-13-42-44)=2882";
$a = str_replace ( array ( '(' , ')' , '=' ) , '-' , $a ) ;

foreach( explode("\r\n" , $a) as $row) {
$data_row = explode("-" , $row ) ;
$info = array();
foreach( $data_row as $data ) {
$data = explode ( '-' , $data );
$key = $data[0] ;
$value = $data[1] ;
$info[$key] = $value ;
}
$all_info[]= $info;
}
var_dump ($all_info) ;
וזה מה שיצא לי. שוב כפול

קוד: בחירת הכל

array(6) { [0]=> array(10) { ["05012345678"]=> NULL ["IVR_PATH"]=> NULL [2018]=> NULL ["07"]=> NULL [21]=> NULL [13]=> NULL [42]=> NULL [44]=> NULL [""]=> NULL ["2/"]=> NULL } [1]=> array(10) { ["05012345678"]=> NULL ["Current"]=> NULL [2018]=> NULL ["07"]=> NULL [21]=> NULL [13]=> NULL [42]=> NULL [44]=> NULL [""]=> NULL [199]=> NULL } [2]=> array(10) { ["05012345678"]=> NULL ["OFFSET"]=> NULL [2018]=> NULL ["07"]=> NULL [21]=> NULL [13]=> NULL [42]=> NULL [44]=> NULL [""]=> NULL [2882]=> NULL } [3]=> array(10) { ["p"]=> NULL ["IVR_PATH"]=> NULL [2018]=> NULL ["07"]=> NULL [21]=> NULL [13]=> NULL [42]=> NULL [44]=> NULL [""]=> NULL ["2/"]=> NULL } [4]=> array(10) { ["p"]=> NULL ["Current"]=> NULL [2018]=> NULL ["07"]=> NULL [21]=> NULL [13]=> NULL [42]=> NULL [44]=> NULL [""]=> NULL [199]=> NULL } [5]=> array(10) { ["p"]=> NULL ["OFFSET"]=> NULL [2018]=> NULL ["07"]=> NULL [21]=> NULL [13]=> NULL [42]=> NULL [44]=> NULL [""]=> NULL [2882]=> NULL } }

011371
הודעות: 997
הצטרף: 23:33 07/12/2017

Re: שאלה

שליחהעל ידי 011371 » 18:33 26/06/2018

הצלחתי לעשות כאמור אבל הוא מראה לי את כל המערך כפול.
לכאורה הצלחתי אבל בפועל זה חוזר על עצמו-מה שלא קיים בקוד התקין שנתת לי.
עד כאן הכל תקין

קוד: בחירת הכל

<?php
$a="05012345678-IVR_PATH(2018-07-21-13-42-44)=2/
05012345678-Current(2018-07-21-13-42-44)=199
05012345678-OFFSET(2018-07-21-13-42-44)=2882
p-IVR_PATH(2018-07-21-13-42-44)=2/
p-Current(2018-07-21-13-42-44)=199
p-OFFSET(2018-07-21-13-42-44)=2882";
$a1=str_replace('(','-', $a);
$a2=str_replace(')','-', $a1);
$a3=str_replace('=','-', $a2);

foreach( explode("\r\n" , $a3) as $row) {
$data_row = explode("-" , $row ) ;
$info = array();
מה שנותר לך לעשות זה לבדוק מה בעצם מכיל משתנה data_row בכל ריצה של הforeach
ולבחור לפי מערכת של תנאים את הפרטים הרצויים להכניס למערך info

בהצלחה

מנחם מענדל מענדי
הודעות: 980
הצטרף: 16:42 28/04/2016

Re: שאלה

שליחהעל ידי מנחם מענדל מענדי » 18:36 26/06/2018

הצלחתי לעשות כאמור אבל הוא מראה לי את כל המערך כפול.
לכאורה הצלחתי אבל בפועל זה חוזר על עצמו-מה שלא קיים בקוד התקין שנתת לי.
עד כאן הכל תקין

קוד: בחירת הכל

<?php
$a="05012345678-IVR_PATH(2018-07-21-13-42-44)=2/
05012345678-Current(2018-07-21-13-42-44)=199
05012345678-OFFSET(2018-07-21-13-42-44)=2882
p-IVR_PATH(2018-07-21-13-42-44)=2/
p-Current(2018-07-21-13-42-44)=199
p-OFFSET(2018-07-21-13-42-44)=2882";
$a1=str_replace('(','-', $a);
$a2=str_replace(')','-', $a1);
$a3=str_replace('=','-', $a2);

foreach( explode("\r\n" , $a3) as $row) {
$data_row = explode("-" , $row ) ;
$info = array();
מה שנותר לך לעשות זה לבדוק מה בעצם מכיל משתנה data_row בכל ריצה של הforeach
ולבחור לפי מערכת של תנאים את הפרטים הרצויים להכניס למערך info

בהצלחה
איך בדיוק אני מכניס?? אני ממש לא מצליח להבין


חזור אל “פורום PHP”

מי מחובר

משתמשים הגולשים בפורום זה: אין משתמשים רשומים | 6 אורחים