2016-06-01 3 views
1

Ich habe Array wie folgt:php Summe spezifischer Wert von mehrdimensionalen Array

Array 
(
    [0] => Array 
     (
      [impr] => 800000 
      [clicks] => 500 
      [ctr] => 0.000625 
      [cvr] => 0.04 
      [cpc] => 0.14024 
      [cpm] => 0.08765 
      [cpa] => 3.51 
     ) 

    [1] => Array 
     (
      [impr] => 889000 
      [clicks] => 600 
      [ctr] => 0.000625 
      [cvr] => 0.08 
      [cpc] => 0.34024 
      [cpm] => 0.08765 
      [cpa] => 4.41 
     ) 

) 

Ich möchte, dass Array zusammenzufassen und wie diese

Array 
(
    [impr] => 1689000 
    [clicks] => 1100 
    [ctr] => 0.0025 
    [cvr] => 0.12 
    [cpc] => 0.96096 
    [cpm] => 0.1753 
    [cpa] => 7.92 
) 

ich mit

versuchen, führen zu erhalten

array_sum()

mit zu diesem array_sum meine Array Looping, aber ich mag dieses

array_sum() erwartet Parameter 1 werden Array, integer gegeben

Und selbst versuchen, mit foreach Schleife immer Fehler und mit + = den Wert für sum, aber das Ergebnis ist nicht, dass ich

das Ergebnis ist 800000889000

Kann jemand empfehlen, mir den besseren Code für mein Ergebnis bekommen, wie ich will

+0

Hat meine Antwort für Sie funktioniert? – Webeng

Antwort

0

zunächst ein Array erstellen, die die Summen enthalten :

$sumArray = array(
    "impr" => 0, 
    "clicks" => 0, 
    "ctr" => 0, 
    "cvr" => 0, 
    "cpc" => 0, 
    "cpm" => 0, 
    "cpa" => 0, 
); 

die Rechen Dann tun:

foreach ($oldArray as $row) 
{ 
    foreach ($rows as $key => $value) 
    { 
     $sumArray[$key] += $value; 
    } 
} 

dann Ihre Ergebnisse anzuzeigen, tun gerade:

print_r($sumArray); 

HINWEIS: Ich gehe davon aus, dass die Schlüssel, die Sie in haben Ihr ursprüngliches Array hat keine Klammern um sie herum. Wenn die eigentlichen Schlüsselzeichenfolgen jedoch Klammern haben, verwenden Sie den folgenden Code zum Erstellen von $ sumArray:

$sumArray = array(
    "[impr]" => 0, 
    "[clicks]" => 0, 
    "[ctr]" => 0, 
    "[cvr]" => 0, 
    "[cpc]" => 0, 
    "[cpm]" => 0, 
    "[cpa]" => 0, 
); 
+0

wie, wenn ich Array wie dieses machen möchte '[1689000, 1100, 0,00125, 0.12, 0.48048, 0.1753, 7.92]'? –

+0

Sie könnten eine andere foreach-Schleife nach meinem vorherigen Code erstellen: '$ otherAnswer = array(); foreach ($ sumArray als $ value) {$ otherAnswer [] = $ value;} Was das bedeutet, ist ein anderes Array mit dem Namen '$ otherAnswer' zu erstellen, das nicht die $ key-Werte enthält (impr, clicks usw.) ..) – Webeng

+0

danke, es funktioniert :) –