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

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

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

How to Compare Arrays of Objects by Column Values Using Array Functions?

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

تقدم العديد من لغات البرمجة وظائف مدمجة لمقارنة المصفوفات. ومع ذلك، تعمل هذه الوظائف عادةً مع أنواع البيانات والمصفوفات البدائية، وليس مع صفائف الكائنات. وهذا يثير سؤال حول كيفية مقارنة مصفوفات الكائنات بناءً على خاصية أو عمود معين.

لمعالجة هذا الأمر، توفر PHP array_udiff، وهي وظيفة تتيح مقارنة مصفوفات الكائنات عن طريق تحديد وظيفة مقارنة مخصصة. خذ بعين الاعتبار المثال التالي:

$first_array = array(
    (object) ['id' => '205', 'day_id' => '12'],
    (object) ['id' => '210', 'day_id' => '15']
);

$second_array = array(
    (object) ['id' => '205', 'day_id' => '12'],
    (object) ['id' => '215', 'day_id' => '18']
);

لمقارنة هذه المصفوفات بناءً على خاصية "المعرف"، يمكنك استخدام دالة مجهولة كما يلي:

$diff = array_udiff($first_array, $second_array,
    function ($obj_a, $obj_b) {
        return $obj_a->id - $obj_b->id;
    }
);

تطرح هذه الوظيفة قيم "المعرف" للكائنين لتحديد الفرق. سيحتوي $diff الناتج على الكائنات الموجودة في المصفوفة الأولى التي لا تحتوي على قيمة 'id' مطابقة في المصفوفة الثانية.

باختصار، من خلال استخدام وظيفة array_udiff وتحديد وظيفة مقارنة مخصصة، يمكن للمطورين مقارنة صفائف الكائنات بناءً على خصائص أو أعمدة محددة، مما يوفر المرونة في مهام تحليل البيانات.

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

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

Copyright© 2022 湘ICP备2022001581号-3