নীচে কিছু সুবিধা সহ আরও একটি সংস্করণ।
$sum = ArrayHelper::copyKeys($arr[0]);
foreach ($arr as $item) {
ArrayHelper::addArrays($sum, $item);
}
class ArrayHelper {
public function addArrays(Array &$to, Array $from) {
foreach ($from as $key=>$value) {
$to[$key] += $value;
}
}
public function copyKeys(Array $from, $init=0) {
return array_fill_keys(array_keys($from), $init);
}
}
আমি গাম্বোর সেরা, গ্রাভিটনের এবং ক্রিস জয়ের উত্তরটি নিম্নলিখিত লক্ষ্যগুলির সাথে একত্রিত করতে চেয়েছিলাম যাতে আমি এটি আমার অ্যাপ্লিকেশনটিতে ব্যবহার করতে পারি:
ক) লুপ (গম্বো) এর বাইরে 'যোগ' অ্যারে কীগুলি শুরু করুন। খুব বড় অ্যারেতে পারফরম্যান্সে সহায়তা করা উচিত (এখনও পরীক্ষিত হয়নি!)। নোটিশ দূর করে।
খ) ম্যানুয়ালগুলিকে আঘাত না করে মূল যুক্তি বোঝা সহজ। (গ্রাভিটন, ক্রিস জে)।
গ) একই কী দিয়ে যে কোনও দুটি অ্যারের মান যুক্ত করার আরও সাধারণ সমস্যা সমাধান করুন এবং এটি সাব-অ্যারে কাঠামোর উপর কম নির্ভরশীল করুন।
গম্বোর সমাধানের বিপরীতে, মানগুলি সাব অ্যারেতে না থাকা ক্ষেত্রে আপনি এটি পুনরায় ব্যবহার করতে পারেন। যে নীচে উদাহরণে কল্পনা $arr1
এবং $arr2
হার্ড কোডেড হয় না, কিন্তু একটি লুপ ভিতরে একটি ফাংশন কলিং ফলে ফিরে হচ্ছে।
$arr1 = array(
'gozhi' => 2,
'uzorong' => 1,
'ngangla' => 4,
'langthel' => 5
);
$arr2 = array(
'gozhi' => 5,
'uzorong' => 0,
'ngangla' => 3,
'langthel' => 2
);
$sum = ArrayHelper::copyKeys($arr1);
ArrayHelper::addArrays($sum, $arr1);
ArrayHelper::addArrays($sum, $arr2);