מחשבים, תכנות
PHP: מערך במערך. חיפוש בתוך מערך PHP
תכנות - הוא תחביר וסמנטיקה. הראשון מוגדר לפי הכללים של השפה, ואת השני - את החוויה של היזם. בהתייחס מפתח מערכים יכול לטעון את התחביר לסמנטיקה הנושא. זה לא אובייקט, אבל לא במובן המסורתי של המערך. PHP מאפשרת לך ליצור מערכים של משתנים מטיפוסים שונים, כולל את עצמנו. אלמנט מערך עשוי להיות פונקציה, אפשר לטעון מערך של אלגוריתם אמיתי, משמעות אמיתית.
התחביר הוא יציב, אך משתנה מגרסה לגרסה, והיא אינה תמיד יהיה תואמת, אפילו מלמטה למעלה. ניידות של תוכניות - נשכחה גם הישגים של המאה שעברה. סמנטיקה תמיד מתפתחת וניתן להחיל לא רק על כל גרסה של שפה כלשהי; זה כבר הפך למסורת להשתמש בתחביר לבטא את העובדה שכללי השפה אפילו סיפק לא היה. ביום בדוגמה זו, מערכים ניתן להבין בקלות הרבה ביותר.
סטי בנייה
מערך ב PHP הוא תחביר ופונקציונלי נוחים. זה סוג של נתונים יכול להיות מתואר מראש, אך לעתים קרובות נוח ליצור מערכים על לטוס כנדרש.
הציבור $ anone = array (); // מערך מתואר ומכיל כלום
הציבור $ aFact = array ( 'אבוקדו', "אפרסק", "דובדבן"); // מערך זה של שלושה אלמנטים
צור מערך של תהליך האימות של כל תנאים:
$ CSrcLine = 'מחרוזת ניתחו נתונים';
עבור (i = 0; $ i <13; $ i ++) {
$ CUserLine = inputUserLine (); // משהו קלט
אם (checkFunc ($ cSrcLine, $ cUserLine) {
$ AResult [] 'כן' =; // להוסיף מערך PHP
} Else {
[$ AResult] = 'לא';
}
}
כתוצאה ביצוע בדוגמה זו תיצור מערך של 13 אלמנטים, ערכי שהן "כן" קווים בלבד או "לא". אלמנטים יצטרכו אינדקסים מ -0 עד 12. אפקט זהה ניתן להשיג על ידי מוקלט מראש "עתיד" PHP-מערך למחרוזת:
$ CFutureArray = '';
עבור (i = 0; $ i <13; $ i ++) {
$ CUserLine = inputUserLine (); // משהו קלט
אם ($ i> 0) {$ cFutureArray = '|' .; }
אם (checkFunc ($ cSrcLine, $ cUserLine) {$ cFutureArray = 'כן' .;
Else} {$ cFutureArray = 'לא' .; }
}
$ AResult = להתפוצץ ( '|', $ cFutureArray);
מערכים רב ממדיים
מערכות ניהול תוכן רבות (SMS) באמצעות מערכים "בקנה מידה גדול." מצד אחד, זהו תרגול טוב, מצד שני, קשה ליישם. גם אם המחבר הוא דוקטרינה ברורה "PHP-מערך במערך", אז זה לא צריך להיות התעלל: לא רק המפתחים יצטרכו להתרגל בסימון המורכב. לעתים קרובות, אחרי כמה זמן המחבר עצמו יהיה ארוך זוכר, מה כתבתי בהתחלה:
לחזור למערך (
'View_manager' => array (41, 'template_path_stack' => array (__DIR__. '/../view',),
= 'נתב'> array ( 'נתיבים' => array ( 'sayhello' => array (
'סוג' => 'Zend \ MVC \ נתב \ http \ מילולי',
'אפשרויות' => array ( 'נתיב' => '/ sayhello', 'המחדל' => array (
'בקר' => 'HelloWorld \ בקר \ אינדקס', 'פעולה' => 'אינדקס',))))),
'בקרי' => array (= 'invokables'> מערך (
'HelloWorld \ בקר \ אינדקס' => 'HelloWorld \ בקר \ IndexController'))
);
זהו מערך-PHP מדגם בפועל «במערך" של ZF 2. לא יותר מדי השראה בהתחלה, אבל זה עובד, ואולי עושה מסגרת מוצלחת זו (למשל ממודול ZendSkeletonApplication / מודול / HelloWorld / config / module.config.php).
Array - מבנה נתונים חשוב במהלך התכנון והפיתוח. הגרסה הרבה מימדית שלו הייתה פעם פופולרית, אבל לאורך הזמן נותרת צורך המערכים של עד שתיים או שלוש מידות. זה בצורה קלה ואינטואיטיבית יותר, אבל מבחינת מקצועיות כשמשהו מתחיל הכפלה, כך משהו בניסוח של הבעיה, או את הקוד אינו המקרה.
פשוט, נגיש ומובן
יצירת ב- PHP מערך במערך, עדיף להיות מוגבל שתיים או שלוש רמות. למרות היציבות והאמינות של PHP שעושה טעויות בעיבוד של תחביר. עם זה אתה יכול לסבול שיש עורך קוד טוב, רגיל לספור סוגר פסיקים במדויק. עם זאת, PHP אינו שולט סוגי נתונים (זה קארמה תכנות מודרנית) ומאפשר ליזם לתרגל שגיאות סמנטיות.
הזכות לקבוע את סוגי משתנים או רעיונות של סמנטיקה טרנספורמציה שלהם תחביר - לעתים קרובות מותרות. תסריט שיעור ההפסד הזה, קריאות קוד, להקל ... בגלל הקידוד הוא תמיד הכרחי.
PHP יש תכונה שלילית משמעותית: במקרה של תסריט ודאות פשוט נתקע. לא כל debuggers להתמודד עם אירועים בלתי צפויים, והרבה תלוי ניסיון ואינטואיציה של היזם. האלגוריתם פשוט יותר מאשר מידע מובנים לנגיש יותר, כך גדל הסיכוי למצוא טעות או אינו מאפשר זאת.
אופייני, כאשר המערכים הראשונים הוצעו אפשרויות של נתונים במבני הטופס - ניסיון מגושם ליצור משהו מתוך סוגים שונים של נתונים. הראשון שרד וצבר תחביר חדש וחזק, ושני ירד בהיסטוריה.
מערכים פשוטים אסוציאטיביים
דו-ממדי מערך הקלטה - זה עוד זוג סוגריים "[" ו "]", למשל: $ aSrcData [1] [2] הוא הפניה אל הרכיב [2] מערך [1], הכלולים במערך של $ aSrcData. ב PHP, אין דרישה להכריז מראש את הנתונים. Lyuboyu הצהיר מידע יכול תמיד להיבדק קיומו.
מאוד יעיל כדי ליצור משהו רק כאשר יש צורך, בצורה שבה הוא נחוצה, והרסו כשזה כבר לא נחוץ. שימוש כמפתחות (מדדים) שמות בעלי משמעות, אתה יכול לקבל עיצוב קריא, משמעות בהקשר של המיקום הנוכחי שלה באלגוריתם:
$ AAnketa [ 'name'] = 'איבנוב';
$ AAnketa [ 'גיל'] = 42;
$ AAnketa [ 'העבודה'] 'מנהל' =;
$ AAnketa [ 'פעיל'] = true;
[$ ATable] = $ aAnketa;
$ AAnketa [ 'name'] = 'פטרוב';
$ AAnketa [ 'גיל'] = 34;
$ AAnketa [ 'העבודה'] 'מנהל' =;
$ AAnketa [ 'פעיל'] = true;
[$ ATable] = $ aAnketa;
$ AAnketa [ 'name'] = 'Afanasiev';
$ AAnketa [ 'גיל'] = 28;
$ AAnketa [ 'העבודה'] 'עבודה' =;
$ AAnketa [ 'פעיל'] = false;
[$ ATable] = $ aAnketa;
$ Sone = לקרוס. ( ";", $ ATable [1]). '
'; // מערך-PHP השני למחרוזת
. $ Sone = $ aTable [1] [ 'העבודה']; // להתקשר אל אלמנט אחד של המערך השני
התוצאה של בדוגמה זו (המערך הראשון - את המפתחות הרגילים בהם מתחיל עם 0, המערך השני - אסוציאטיבי, ישנם ארבעה מפתחות: "שם", "גיל", "עבודה", "פעיל"):
$ Sone = "פטרוב; 34; מנהל; 1
מנהל ";
בדוגמא פשוטה זו, אפשר לראות איך פרופיל הוקם עשוי להיות מיושם על כל העובדים. אתה יכול ליצור מערך של עובדים עם מדדים של מספרי אנשים ואם יש צורך בעובד מסוים, ולאחר מכן בחר אותו במספר האנשים.
אם הארגון שלך יש כמה חטיבות או יש עבודה עונתית, או אם אתה רוצה להקצות בנפרד גמלאים עובדים ... עיצוב "PHP-מערך במערך" מאוד נוח, אבל אתה אף פעם לא צריך להיות מעורב בממד. שתיים או שלוש מידות - הם הגבול עבור פתרונות יעילים.
מפתחות לעבודה עם מערכים
אם לפני שהיה חשוב, איך דברים עובדים, בשנים האחרונות, את המסורת של העידן בינארי, כאשר מתכנת רצה לדעת בדיוק איך אלמנטי המערך מאוחסנים, ואחל להם גישה ישירה, שכחה לגמרי. היה הרבה קידודים אופי, אשר תופסים בזיכרון לא בייט אחד. המילה "קצת" כיום ניתן לפגוש רק בעוד כמה פעולות קצת חיפוש, אך החיפוש אחר במערך PHP - הוא נושא נפרד. גישה אל היסודות יכולה להיות פשוטה אסוציאטיבי. במקרה לשעבר האלמנטים במערך (נתקלו באחת PHP הסוגים הזמינים) ממוספרים 0, 1, 2, ... במקרה השני, המתכנת מציינת מדד משלה, המכונה לעתים קרובות "מפתח" כדי לגשת לערך הרצוי.
אלין $ [ "פרי"] = "orange"; // כאן מפתח PHP מערך = "פרי"
או (הכל יהיה נכון בהתאם הדף קוד קידוד):
$ אלין [iconv ( 'UTF-8', 'CP1251', "פירות")] = iconv ( 'UTF-8', 'CP1251', "תפוז");
כשמוסיפים את הערך החדש מערך $ אלין:
[$ אלין] = iconv ( 'UTF-8', 'CP1251', 'אפרסק');
$ אלין [iconv ( 'UTF-8', 'CP1251', "ירקות")] = iconv ( 'UTF-8', 'CP1251', "מלפפון");
[$ אלין] = iconv ( 'UTF-8', 'CP1251', 'חצילים');
כתוצאה הלולאה:
foreach ($ אלין כמו CK $ => $ CV) {
$ קונוס. = Ck $. '='. $ קורות חיים. '
';
}
זה מתקבל על ידי:
פירות כתומים =
0 = אפרסק
= ירקות מלפפון
1 = חצילים
PHP-מפתח מערך בעת הוספת "אפרסק" פריטים "חצילים" נוצר ברצף מ 0, וכאשר ציון הערך שלו יהיה שווה לערך זה.
הסרת אלמנטים מן המערך
הדרך הקלה ביותר להסיר את אלמנט מערך PHP במהלך עיבוד. במקרה זה, למשל, כתוצאה של מחזור הביצוע, המערך המקורי נתפס, ויצר אחד חדש, שבו פריטים מיותרים פשוט לא נרשם.
אתה יכול לעשות יותר קל. אם הדוגמה האחרונה להשתמש:
לא הוגדר ($ אלין [0]); // להסיר PHP מערך אלמנט
התוצאה תהיה:
פירות כתומים =
= ירקות מלפפון
1 = חצילים
אפשרויות לשינוי האלמנטים במערך ניתן לבנות סט. לדוגמה, באמצעות הפונקציה: implode () ו להתפוצץ (), ניתן לכתוב מערך PHP-בשורה עם מחיצה אחת, לפרק בחזרה לתוך מערך אחר - על ידי מפריד אחר.
כדי פשוט להסיר מערך PHP בכללותו, פשוט לכתוב: לא הוגדר ($ אלין);
זה מספיק.
חיפוש במערך
PHP מכיל פונקציית חיפוש מיוחד array_keys (), array_values (), array_key_exists (), ולאחר in_array (), אבל לפני שאתה מחליט להשתמש בהם, כדאי לשקול את האפשרות לחפש בתוך מערך PHP על משלה.
לכל פרויקט מסוים באזור נושא, מערכים מעוצבים, במיוחד כאשר חלק הסמנטיקה עבר התחביר מיוצג על ידי צרור מפתחות משמעות ספציפיים מאוד. זה מאפשר לך לבצע פונקציית החיפוש משלך, אשר גם יכול להיות מתוארת בצורה משמעותית.
ב PHP, אתה יכול לקרוא לפונקציה, בשם אשר נקבע במהלך ביצוע התוכנית. דוגמה מעשית מאוד של הספרייה PHPWord המאפשר לך לקרוא ולכתוב מסמכי וורד:
אלמנטים $ = array ( 'טקסט', 'inline', 'TextRun', 'קישור', 'PreserveText', 'TextBreak',
'ListItem', 'ListItemRun', 'שולחן', 'תמונה', 'אובייקט', 'הערת שוליים',
'Endnote', 'התיבה', 'תיבת טקסט', 'שדה', 'קו');
פונקציות $ = מערך ();
עבור (i = 0; $ i <ספירה ($ אלמנטים); $ i ++) {
פונקציות $ [$ i] = 'להוסיף'. $ אלמנטים [$ i];
}
כתוצאה מכך, מערך של פונקציות שבהם $ מקבלים אלמנטים מערך ערכים $, כלומר, את השמות של הפונקציות המבצעות את העבודה עם אלמנטים אמיתיים של המסמך.
קריאת אלמנטי $ [4] פונקציות $ פונקציה [4], אתה יכול לקבל את החיפוש המושלם ועל תוצאות מהירות.
פריטי מיין
המשימה של מיון הנתונים חשובה, ו- PHP מספק פונקציות אחדות לכך: מיין (), rsort (), asort (), ksort (), ... עולה ואלמנטים יורדים של הפונקציות שני האחרונות לשמר יחסים בין מפתחות וערכים. לפעמים זה הגיוני לערבב את הערכים של המערך באקראי - דשדוש ().
שימוש בפונקציות PHP למיין, אל לנו לשכוח כי החברים עשויים להיות לא רק סוג שונה, אבל לא תוכן טבעי למדי. הדבר הראשון שיש להיות זהיר מאוד לגבי מיון מחרוזות המכילות אותיות רוסיות, תאריכי מיון, ומספרים, אשר נכתבים בפורמטים שונים.
הדרך הטובה ביותר לכתוב הפתרון האידיאלי שלך, לפחות בשלב של בדיקת סקריפט - היא מיון ידני. זה יעזור לספק למקרים.
מערכי מחרוזת
עם תכונות implode () ו להתפוצץ () מערך יכול בקלות להפוך מחרוזת לחזור. זה מאפשר לך לאחסן נתוני ייצוג קומפקטי ולפרוס אותם במצב נוח לפי צורך.
Array, מול בקו פותח אפשרויות חדשות. לדוגמא, את המשימה של חיפוש מילות מפתח בטקסט דורשת כי מצאתי לא נוספת שוב.
$ CSrcLine = "טקסט טקסט תיבת טקסט ListItemRun קופסאות טקסט ListItem בדוק הערת שוליים תיבת טקסט תיבת הסימון";
$ ASRC = להתפוצץ ( '', $ cSrcLine);
$ CDstLine = '';
עבור (i = 0; $ i <ספירה ($ ASRC); $ i ++) {
$ CFind = '['. $ ASRC [$ i]. '];
אם (! is_integer (strpos ($ cDstLine, $ cFind))) {
. $ CDstLine = $ cFind;
}
}
$ ADst = להתפוצץ ( '] [', $ cDstLine);
$ קונוס = לקרוס ( ';', $ aDst);
כתוצאה מכך, קונוס $ משתנה לקבל רק את הערכים מן הקווים המקוריים העונים לשם פעם: "טקסט; ListItemRun; קופסאות טקסט; ListItem; המחאה; Box; תיבת הסימון; הערת שוליים".
שפה רוסית המפתחות והערכים
לא מומלץ להשתמש בכל דבר שקשור סטי אופי לאומיים במבנים תחביריים. בשפה הרוסית, כמו גם בכל השפות האחרות, את הדמויות של שערכה לא יסולא AZ, לא תיצור בעיה, להיות במסד הנתונים, אך לא את התחביר קוד. לפעמים אפילו משימה פשוטה עבור PHP «להביא מערך של המדפסת או על המסך" יוביל 'ג'יבריש' ולעיתים קרובות פשוט להפסיק את התסריט.
PHP - שפה נאמנת וסובלני של האופי הלאומי, אך ישנם מצבים רבים שבם כמות העבודה שבוצעה צריכה לעשות שוב רק בגלל במקום הנכון בזמן הנכון יופיע המפתח, לזהות אילו לא יהיה אפשרי.
תחביר PHP וסביבה שפה
זכור כי תחביר PHP - זה אחד, אבל העיצוב של תחביר זה "עסקה" עם יישומים אחרים, מערכת ההפעלה עם אפשרויות החומרה. יש הרבה אפשרויות, כדי לספק את כל לעולם לא יהיה אפשרי.
כלל "בקוד יש רק את הקוד בכניסה, בתוך במוצא יש מידע" יעזור למנוע הפתעות לא צפויות. PHP-הערך במערך יכול להיות "רוסי", אבל המפתח הוא להיות נכון מבחינה תחבירית, לא רק מנקודת המבט של השפה, אלא גם במונחים של סביבת העבודה שלו.
Similar articles
Trending Now