Menu
Coddy logo textTech

'array_map' עם פונקציה מותאמת אישית

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-PHP של Coddy. שיעור 40 מתוך 68.

בעוד שפונקציות מובנות כמו strtoupper עובדות היטב עם array_map(), העוצמה האמיתית מגיעה משימוש בפונקציות מותאמות אישית משלך. כך אפשר ליצור טרנספורמציות ספציפיות המותאמות בדיוק לצרכים שלך.

כדי להשתמש בפונקציה מותאמת אישית עם array_map(), פשוט העבירו את שם הפונקציה כמחרוזת בפרמטר הראשון. הפונקציה המותאמת אישית שלכם צריכה לקבל פרמטר אחד (רכיב המערך הנוכחי) ולהחזיר את הערך שעבר טרנספורמציה.

<?php
function doubleNumber($num) {
    return $num * 2;
}

$numbers = [1, 2, 3, 4, 5];
$doubled = array_map("doubleNumber", $numbers);
// תוצאה: [2, 4, 6, 8, 10]
?>

הגישה הזו נותנת לך שליטה מלאה על אופן העיבוד של כל איבר. אפשר לבצע חישובים מורכבים, מניפולציות על מחרוזות או כל לוגיקה אחרת בתוך הפונקציה המותאמת אישית שלך, וכך להפוך את array_map() לכלי רב־תכליתי במיוחד למשימות של שינוי נתונים.

challenge icon

אתגר

קל

יתקבלו שני קלטים: רשימת טמפרטורות במעלות צלזיוס, המופרדות בפסיקים, ויחידת יעד להמרה (או F לפרנהייט או K לקלווין). הקלט הראשון מכיל טמפרטורות כמחרוזת בפורמט 0,10,20,30,100, והקלט השני הוא תו יחיד המציין את סוג ההמרה.

קראו את שני הקלטים, המירו את הטמפרטורות המופרדות בפסיקים למערך של מספרים, צרו פונקציה מותאמת אישית שממירה טמפרטורה במעלות צלזיוס ליחידת היעד, השתמשו ב-array_map() עם הפונקציה המותאמת אישית שלכם כדי להמיר את כל הטמפרטורות, והדפיסו כל טמפרטורה מומרת בשורה נפרדת, בעיגול ל-2 ספרות אחרי הנקודה העשרונית.

נוסחאות המרה:

  • מעלות צלזיוס לפרנהייט: (C × 9/5) + 32
  • מעלות צלזיוס לקלווין: C + 273.15

פורמט הקלט:

  • שורה ראשונה: טמפרטורות במעלות צלזיוס, מופרדות בפסיקים (לדוגמה: 0,10,20,30,100)
  • שורה שנייה: יחידת היעד להמרה — או F או K (לדוגמה: F)

פלט צפוי: כל טמפרטורה מומרת מודפסת בשורה נפרדת, בעיגול ל-2 ספרות אחרי הנקודה העשרונית

נסו בעצמכם

<?php
// קראו את הטמפרטורות המופרדות בפסיקים
$temperatures = fgets(STDIN);

// קראו את יחידת היעד (F או K)
$unit = trim(fgets(STDIN));

// המירו את המחרוזת המופרדת בפסיקים למערך של מספרים
$tempArray = explode(',', trim($temperatures));

// TODO: כתבו את הקוד שלכם למטה
// צרו פונקציה מותאמת אישית להמרת צלזיוס ליחידת היעד
// השתמשו ב-array_map() כדי להחיל את ההמרה על כל הטמפרטורות
// הדפיסו כל טמפרטורה שהומרה בשורה נפרדת, מעוגלת ל-2 ספרות אחרי הנקודה העשרונית

?>
quiz iconבחנו את עצמכם

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

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: קומפיילר PHP אונליין