16-07-2010, 12:52
|
|
|
חבר מתאריך: 25.08.03
הודעות: 9,114
|
|
גישה שונה
היות ושימוש בביטוי סדיר (או סידרתי, או איך שזה נקרא בעברית) עלול לצרוך משעבדי עיבוד רבים מדי (באופן יחסי ומצטבר), יש להעדיף שימוש בקוד ללא ניתוח מחרוזות תוך צריכה גבוהה של משעבדי עיבוד.
1. תשנה את מבנה אחסון הנתונים:
קוד PHP:
<?php
$_ = explode('-', '1,1,1-2,2,2-3,3,3-4,4,4');
foreach($_ as $k->v) $_[$k] = explode(',', $_[$k]);
2. אתה יכול לעשות זאת גם בתחביר הנוכחי, אך תזדקק למעט יותר:
קוד PHP:
<?php
$_ = '{1,1,1},{2,2,2},{3,3,3},{4,4,4}';
$_ = explode('},{', substr($_, 1, strlen($_)-2));
foreach($_ as $k->v) $_[$k] = explode(',', $_[$k]);
אגב, אם אתה תוחם כל "מערך" בסוגריים מסולסלות, הפסיק לגמרי מיותר.
בנוסף, גם לתחום בסוגריים גורר תווים נוספים מעבר לנדרש. בדוגמה שהצגתי לעיל, נעשה שימוש בתו הפרדה יחיד.
נערך לאחרונה ע"י ישראל K בתאריך 16-07-2010 בשעה 13:07.
|