"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية فرز المصفوفات متعددة الأبعاد حسب مفتاح محدد باستخدام وظيفة usort والمقارنة المخصصة؟

كيفية فرز المصفوفات متعددة الأبعاد حسب مفتاح محدد باستخدام وظيفة usort والمقارنة المخصصة؟

تم النشر بتاريخ 2024-11-08
تصفح:848

How to Sort Multidimensional Arrays by a Specific Key Using usort and Custom Comparison Function?

فرز المصفوفات متعددة الأبعاد حسب المفتاح

تتمثل المهمة الشائعة عند العمل مع المصفوفات متعددة الأبعاد في الحاجة إلى فرزها وفقًا لمفتاح محدد. على سبيل المثال، خذ بعين الاعتبار المصفوفة التالية:

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

لفرز هذه المصفوفة حسب مفتاح [الحالة]، يمكنك استخدام وظيفة usort مع وظيفة المقارنة المخصصة:

// Define a comparison function
function cmp($a, $b) {
    if ($a['status'] == $b['status']) {
        return 0;
    }
    return ($a['status'] 

من خلال تحديد وظيفة cmp، يمكنك تحديد كيفية مقارنة العناصر أثناء الفرز. في هذه الحالة، يقوم بمقارنة مفتاح [الحالة] بين العنصرين، ويعيد -1 إذا كان $a['status'] أقل من $b['status']، و0 إذا كانا متساويين، و1 بخلاف ذلك.

تقوم الدالة usort بترتيب عناصر المصفوفة بترتيب تصاعدي بناءً على مخرجات دالة المقارنة. يتيح لك هذا فرز المصفوفة متعددة الأبعاد حسب المفتاح المطلوب، في هذه الحالة، [الحالة].

بيان الافراج أعيد طبع هذه المقالة على: 1729422320 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3