חילוץ באמצעות 'array_slice'
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-PHP של Coddy. שיעור 16 מתוך 68.
הפונקציה array_slice() מאפשרת לך לחלץ חלק ממערך בלי לשנות את המערך המקורי. בניגוד לפונקציות כמו array_pop() או array_shift() שמשנות את מערך המקור, array_slice() יוצרת מערך חדש שמכיל רק את האיברים שציינת.
הפונקציה מקבלת שני פרמטרים עיקריים: ההיסט (מיקום ההתחלה) והאורך (כמה איברים לחלץ):
<?php
$scores = [95, 87, 92, 78, 85, 90, 88];
$topThree = array_slice($scores, 0, 3);
print_r($topThree); // פלט: Array ( [0] => 95 [1] => 87 [2] => 92 )
print_r($scores); // המערך המקורי נותר ללא שינוי
?>הפרמטר offset מציין ל-PHP מאיפה להתחיל לחלץ (0 פירושו האיבר הראשון), ואילו הפרמטר length מציין כמה איברים לקחת. אפשר גם להשתמש בערכים שליליים עבור offset כדי להתחיל לספור מסוף המערך.
הפונקציה הזאת שימושית במיוחד כשצריך לעבוד עם תת-קבוצה של נתונים, למשל להציג רק את הפריטים הראשונים ברשימה גדולה או לחלץ טווח מסוים של רכיבים לעיבוד, תוך שמירה על הנתונים המקוריים שלך ללא שינוי.
אתגר
קליתקבלו שלושה קלטים: מערך של מחירי מוצרים בפורמט JSON, מיקום התחלתי (היסט) ומספר הפריטים לחילוץ (אורך). קרא את כל שלושת הקלטים, המר את מחרוזת ה-JSON למערך, השתמש ב-array_slice() כדי לחלץ את החלק המבוקש מהמערך, והדפס את החלק שחולץ באמצעות print_r().
פורמט הקלט: שלוש שורות - השורה הראשונה מכילה מערך JSON של מספרים (לדוגמה: [29.99,15.50,42.00,8.75,33.25]), השורה השנייה מכילה את ההיסט (המיקום ההתחלתי), והשורה השלישית מכילה את האורך (מספר האיברים לחילוץ)
פלט צפוי: החלק שחולץ מהמערך, מוצג באמצעות print_r()
נסו בעצמכם
<?php
// קראו את מערך המחירים בפורמט JSON
$json_input = fgets(STDIN);
$prices = (array)json_decode($json_input, true);
// קראו את ההיסט (מיקום ההתחלה)
$offset = intval(fgets(STDIN));
// קראו את האורך (מספר הרכיבים שיש לחלץ)
$length = intval(fgets(STDIN));
// TODO: כתבו את הקוד שלכם למטה כדי לחלץ את המקטע ולהציג אותו בפלט
?>השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
1פונקציות מתקדמות
פונקציות אנונימיותסגירות ו-'use'פונקציות חץפונקציות callbackשימוש ב-'call_user_func'פונקציות משתנותהעברה באמצעות הפניהפונקציות רקורסיביותסיכום: מגוון פונקציות4מערכים רב־ממדיים
יצירת מערך דו־ממדיגישה לאיברי מערך דו־ממדישינוי איברי מערך דו־ממדימעבר באמצעות לולאות מקוננותמערכים אסוציאטיביים דו־ממדייםסיכום: תרגיל רשת פשוטה2מניפולציות מתקדמות במערכים
הוספה באמצעות 'array_push'הסרה באמצעות 'array_pop'הוספה לתחילת המערך באמצעות 'array_unshift'הסרה מתחילת המערך באמצעות 'array_shift'מיזוג מערכים ממוספריםמיזוג מערכים אסוציאטיבייםחילוץ באמצעות 'array_slice'בדיקת ערכים באמצעות 'in_array'חיפוש מפתחות באמצעות 'array_search'סיכום: תרגיל רשימת השמעה3מיון מערכים
מיון מערכים עם אינדקסים בסדר עולהמיון מערכים עם אינדקסים בסדר יורדמיון מערכים אסוציאטיביים לפי ערךמיון מערכים אסוציאטיביים לפי מפתחמיון בסדר טבעימיון מותאם אישית באמצעות 'usort'סיכום: מיון טבלת מוביליםתרגלו בעצמכם: קומפיילר PHP אונליין