Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

ترتيب المصفوفات الترابطية حسب المفتاح

جزء من قسم Logic & Flow في رحلة 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 )
?>

لاحظ كيف أصبحت المفاتيح الآن مرتبة أبجديًا من A إلى Z، بينما يظل كل اسم إعداد مقترنًا بشكل صحيح بقيمته. هذا مفيد بشكل خاص عندما تريد عرض خيارات التكوين أو عناصر القائمة بطريقة منظمة ومنسقة.

للترتيب الأبجدي العكسي، تعمل krsort() بشكل مشابه ولكنها تفرز المفاتيح من Z إلى A. تقوم كلتا الدالتين بتعديل المصفوفة الأصلية مباشرة، تماماً مثل دوال الفرز الأخرى في PHP، مما يجعلها فعالة لتنظيم البيانات حيث يكون ترتيب المفاتيح أكثر أهمية من ترتيب القيم.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

challenge icon

التحدي

سهل

ستتلقى مدخلاً واحداً: مصفوفة ترابطية لأسماء الأقسام وتخصيصات ميزانياتها بتنسيق JSON. اقرأ المدخلات، وقم بتحويل سلسلة JSON إلى مصفوفة، واستخدم ksort() لفرز الأقسام أبجدياً حسب مفاتيحها بترتيب تصاعدي، واطبع المصفوفة المفروزة باستخدام print_r().

تنسيق المدخلات: سطر واحد يحتوي على كائن JSON مع أسماء الأقسام كمفاتيح ومبالغ الميزانية كقيم (مثال: {"Marketing":75000,"IT":120000,"HR":65000,"Finance":95000})

المخرجات المتوقعة: المصفوفة الترابطية المفروزة بترتيب أبجدي تصاعدي حسب أسماء الأقسام (المفاتيح)، معروضة باستخدام print_r()

ورقة مرجعية

توفر PHP دالتي ksort() و krsort() لفرز المصفوفات الترابطية حسب مفاتيحها مع الحفاظ على العلاقات بين المفاتيح والقيم.

تقوم ksort() بفرز المفاتيح بترتيب أبجدي تصاعدي (من A إلى Z):

ksort($array);

تقوم krsort() بفرز المفاتيح بترتيب أبجدي تنازلي (من Z إلى A):

krsort($array);

تقوم كلتا الدالتين بتعديل المصفوفة الأصلية مباشرة:

<?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 )
?>

جرّب بنفسك

<?php
// قراءة المدخلات
$input = fgets(STDIN);

// تحويل JSON إلى مصفوفة
$departments = (array)json_decode($input, true);

// TODO: اكتب الكود الخاص بك أدناه لفرز المصفوفة حسب المفاتيح


// طباعة النتيجة
print_r($departments);
?>
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Logic & Flow