دمج المصفوفات وجمع قيم المفاتيح المشتركة
غالبًا ما تنشأ الحاجة إلى دمج صفائف ترابطية متعددة أثناء الجمع بين القيم المرتبطة بالمفاتيح المشتركة. بشكل افتراضي، يؤدي دمج المصفوفة إلى الكتابة فوق القيم المتعارضة، كما هو موضح في المثال المقدم. لمعالجة هذه المشكلة، نقدم مجموعة من الأساليب التي تضيف بشكل فعال قيمًا للمفاتيح المشتركة مع الحفاظ على المفاتيح الفريدة.
استخدام وسيطات المصفوفات:
أحد الأساليب هو حساب مجموع القيم يدويًا باستخدام وسيطات المصفوفة. يتضمن ذلك التكرار عبر مفاتيح المصفوفة المدمجة وجمع قيم كل مفتاح عبر مصفوفات الإدخال.
$sums = array(); foreach (array_keys($a1 $a2) as $key) { $sums[$key] = (isset($a1[$key]) ? $a1[$key] : 0) (isset($a2[$key]) ? $a2[$key] : 0); }
التعيين والتصغير:
هناك طريقة أخرى تتضمن إنشاء مصفوفات متوسطة بقيم صفرية لكل مفتاح فريد. يتم بعد ذلك دمجها مع المصفوفات الأصلية وتعيينها لحساب المجاميع.$keys = array_fill_keys(array_keys($a1 $a2), 0); $sums = array_map(function ($a1, $a2) { return $a1 $a2; }, array_merge($keys, $a1), array_merge($keys, $a2));$keys = array_fill_keys(array_keys($a1 $a2), 0); $sums = array_map(function ($a1, $a2) { return $a1 $a2; }, array_merge($keys, $a1), array_merge($keys, $a2));
المشي على المصفوفة:
وبالمثل، يمكنك استخدام المشي على المصفوفة لحساب مجموع المفاتيح المشتركة.$sums = array_fill_keys(array_keys($a1 $a2), 0); array_walk($sums, function (&$value, $key, $arrs) { $value = @($arrs[0][$key] $arrs[1][$key]); }, array($a1, $a2));$keys = array_fill_keys(array_keys($a1 $a2), 0); $sums = array_map(function ($a1, $a2) { return $a1 $a2; }, array_merge($keys, $a1), array_merge($keys, $a2));
وظيفة قابلة لإعادة الاستخدام مع معلمات ديناميكية:
أخيرًا، يمكنك إنشاء وظيفة قابلة لإعادة الاستخدام تقبل عددًا غير محدود من المصفوفات ويحسب مجموع القيم للمفاتيح المشتركة.function array_sum_identical_keys() { $arrays = func_get_args(); $keys = array_keys(array_reduce($arrays, function ($keys, $arr) { return $keys $arr; }, array())); $sums = array(); foreach ($مفاتيح كمفتاح $) { $sums[$key] = array_reduce($arrays, function ($sum, $arr) use ($key) { return $sum @$arr[$key]; }); } إرجاع مبالغ $؛$keys = array_fill_keys(array_keys($a1 $a2), 0); $sums = array_map(function ($a1, $a2) { return $a1 $a2; }, array_merge($keys, $a1), array_merge($keys, $a2));توفر هذه الحلول طرقًا فعالة لدمج المصفوفات الترابطية المتعددة وحساب مجموع القيم للمفاتيح المشتركة، مما يوفر المرونة وإمكانية إعادة استخدام التعليمات البرمجية لسيناريوهات مختلفة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3