Aşağıda bazı avantajları ile başka bir versiyonu.
$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);
}
}
Ben bu yüzden benim app Bu kullanabilirsiniz Gumbo ait, Gravitasyon ait ve aşağıdaki hedefleri ile Chris J cevabı en iyi birleştirmek istedim:
a) döngü (Bamya) dışında 'sum' dizisi tuşları başlat. Çok büyük dizilerle performans ile yardımcı olmalıdır (henüz test değil!). Bildirimlerini ortadan kaldırır.
b) Ana mantık kılavuzları isabet olmadan anlamak kolaydır. (Gravitasyon, Chris J).
c) Aynı tuşlarla herhangi iki Dizilerin değerlerini ekleyerek daha genel problemini çözün ve alt dizi yapısına daha az bağımlı hale.
Gumbo çözümü aksine, değerler alt diziler içinde olmadığı durumlarda bu yeniden olabilir. O $arr1
ve $arr2
kodlanmış değil aşağıda örnekte hayal, ama bir döngü içinde bir işlevinin sonucu olarak iade ediliyor.
$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);