Menu
Coddy logo textTech

מיון מערכים אסוציאטיביים לפי מפתח

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

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

כך ksort() מסדרת מערך לפי סדר אלפביתי של המפתחות שלו:

<?php
$settings = [
    "theme" => "dark",
    "language" => "english", 
    "notifications" => "enabled",
    "auto_save" => "on"
];

ksort($settings);
print_r($settings);
// פלט: Array ( [auto_save] => on [language] => english [notifications] => enabled [theme] => dark )
?>

שימו לב שהמפתחות מסודרים כעת בסדר אלפביתי מא' עד ת', בעוד שכל שם של הגדרה נשאר מותאם כראוי לערך שלו. זה שימושי במיוחד כשרוצים להציג אפשרויות תצורה או פריטי תפריט בצורה צפויה ומאורגנת.

לסדר אלפביתי הפוך, krsort() פועלת באופן דומה, אך ממיינת מפתחות מ־Z עד A. שתי הפונקציות משנות ישירות את המערך המקורי, בדומה לפונקציות מיון אחרות ב־PHP, ולכן הן יעילות לארגון נתונים שבהם סדר המפתחות חשוב יותר מסדר הערכים.

challenge icon

אתגר

קל

תקבלו קלט אחד: מערך אסוציאטיבי של שמות מחלקות והקצאות התקציב שלהן בפורמט JSON. קראו את הקלט, המירו את מחרוזת ה-JSON למערך, השתמשו ב-ksort() כדי למיין את המחלקות בסדר אלפביתי עולה לפי המפתחות שלהן, והדפיסו את המערך הממוין באמצעות print_r().

פורמט הקלט: שורה אחת המכילה אובייקט JSON עם שמות מחלקות כמפתחות וסכומי תקציב כערכים (לדוגמה: {"Marketing":75000,"IT":120000,"HR":65000,"Finance":95000})

הפלט הצפוי: המערך האסוציאטיבי הממוין בסדר אלפביתי עולה לפי שמות המחלקות (המפתחות), המוצג באמצעות print_r()

נסו בעצמכם

<?php
// קראו את הקלט
$input = fgets(STDIN);

// המירו את JSON למערך
$departments = (array)json_decode($input, true);

// TODO: כתבו את הקוד שלכם למטה כדי למיין את המערך לפי מפתחות


// הציגו את התוצאה
print_r($departments);
?>
quiz iconבחנו את עצמכם

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

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

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