الفرز المخصص للمصفوفات متعددة الأبعاد
يمكن أن يكون فرز المصفوفات متعددة الأبعاد مهمة شائعة في البرمجة. توضح هذه المقالة كيفية فرز مثل هذه المصفوفة بناءً على مفتاح محدد باستخدام وظيفة PHP usort().
فهم المهمة
خذ بعين الاعتبار المصفوفة متعددة الأبعاد التالية حيث كل منها يمثل العنصر سجلاً:
Array (
[0] => Array
(
[iid] => 1
[invitee] => 174
[nid] => 324343
[showtime] => 2010-05-09 15:15:00
[location] => 13
[status] => 1
[created] => 2010-05-09 15:05:00
[updated] => 2010-05-09 16:24:00
)
[1] => Array
(
[iid] => 1
[invitee] => 220
[nid] => 21232
[showtime] => 2010-05-09 15:15:00
[location] => 12
[status] => 0
[created] => 2010-05-10 18:11:00
[updated] => 2010-05-10 18:11:00
))
الفرز حسب المفتاح
لفرز هذه المصفوفة حسب مفتاح "الحالة"، نحتاج إلى تحديد دالة مقارنة تحدد ترتيب العناصر.
function cmp($a, $b) {
if ($a['status'] == $b['status']) {
return 0;
}
return ($a['status'] تقارن هذه الوظيفة قيم "الحالة" لعنصرين. إذا كانت القيم متساوية، فسيتم إرجاع 0. إذا كان العنصر الأول له قيمة "حالة" أقل من العنصر الثاني، فسيتم إرجاع -1. بخلاف ذلك، فإنها ترجع 1.
باستخدام usort()
يمكننا الآن استخدام الدالة usort() لفرز المصفوفة باستخدام وظيفة المقارنة لدينا:
usort($array, "cmp");
سيؤدي هذا إلى فرز المصفوفة بترتيب تصاعدي بناءً على مفتاح "الحالة". سيتم إعادة ترتيب عناصر المصفوفة المعدلة وفقًا لذلك.
تخصيص المقارنة
يمكن تخصيص وظيفة المقارنة لفرز المصفوفة بناءً على أي مفتاح. ما عليك سوى تعديل الوظيفة لمقارنة قيم المفاتيح المطلوبة. وهذا يوفر المرونة في فرز المصفوفات متعددة الأبعاد بناءً على معايير مختلفة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3