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

كيفية تصفية صفوف المصفوفة بناءً على قيمة العمود المطابقة لقيم محددة؟

تم النشر بتاريخ 2024-12-23
تصفح:855

How to Filter Array Rows Based on Column Value Matching Specific Values?

مجموعة الصف الفرعية بناءً على تضمين قيمة العمود

خذ بعين الاعتبار مصفوفة $arr1، مع أعمدة متعددة ومصفوفة مسطحة ثانية، $arr2، تحتوي على قيم معرف محددة. الهدف هو تصفية $arr1 للاحتفاظ فقط بتلك الصفوف التي تتطابق فيها قيمة العمود مع أي من القيم الموجودة في $arr2.

أثبتت المحاولات السابقة باستخدام وظائف التصفية أو array_search عدم نجاحها. يتضمن الحل العملي استخدام وظيفة PHP الأصلية، array_uintersect().

تستخدم هذه الوظيفة وظيفة رد اتصال مجهولة تقوم بتقييم عمود المعرف (أو ترجع إلى قيمة المعلمة إذا لم تكن موجودة) داخل كلا مصفوفتي الإدخال. تتحقق المقارنة من المساواة بين القيم.

ضمن رد الاتصال، يتم استخدام العامل => لالتقاط متغيرات صفيف الإدخال $a و$b، والمشغل الثلاثي ?: يعين قيمة إرجاع غير فارغة .

تحت الغطاء، يقوم array_uintersect بإجراء الفرز أثناء عملية التقييم، مما يؤدي إلى تحسين الأداء والتنفيذ بشكل أسرع بكثير من in_array() التكراري. call.

الكود أدناه يوضح الحل:

var_export(
    array_uintersect(
        $arr1,
        $arr2,
        fn($a, $b) =>
            ($a['id'] ?? $a)
            
بيان الافراج أعيد طبع هذه المقالة على: 1729668976 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3