2011-12-03 4 views
0

誰かが2つの外側の配列要素のそれぞれの下に来る値の合計を取得する方法を説明できますか?私は日付ごと2011年11月18日と11月22日、2011年の値を示す配列で終了したいここで配列データは以下のとおりです。助けを配列からのPHP小計

Array 
(
[Nov 18, 2011] => Array 
    (
     [C] => Array 
      (
       [T] => 49783.531672 
       [X] => 25013.184 
      ) 
     [S] => Array 
      (
       [T] => 32908.863528 
      ) 
     [I] => Array 
      (
       [T] => 44561.52 
      ) 
    ) 
[Nov 22, 2011] => Array 
    (
     [C] => Array 
      (
       [T] => -5168.944696 
      ) 
     [S] => Array 
      (
       [T] => -3823.890504 
      ) 
    ) 
) 

感謝。

+0

をご希望の出力の例を与えることができます?日付または倍数ごとに1つの合計しか必要ないかどうかは不明です。 –

答えて

2

スクリプトは次のようになります。

$results = array(); 
foreach($array as $element){ 
    $sum = 0; 
    foreach($element as $subelement){ 
     foreach($subelement as $item => $value){ 
      $sum = $sum + $value; 
     } 
    } 
    array_push($results, $sum); 
} 

これはあなたに和の配列を与えるだろう。あなたがそう望むならばもちろん、それぞれに名前をつけることができます。

編集:自分より先に行ってください。私に編集された合計ではなく、日付ごとに合計したい場合

+0

ありがとう@ 3321thecしかし、私はカウントしたくないが、合計する。 – DanielAttard

+0

うわー、完璧に動作します。ありがとうございました。 – DanielAttard

4

を数える:

$totals = array(); 
foreach ($origarray as $date => $inner) { 
    $totals[$date] = array_sum(array_map('array_sum', $inner)); 
} 

を日付ごとに複数の総和たい場合:

$totals = array(); 
foreach ($origarray as $date => $item) { 
    foreach ($item as $innerk => $innerv) { 
     $totals[$date][$innerk] = array_sum($innerv); 
    } 
} 
+1

PHP 5.3以降の場合: '$ totals = array_map(function($ i){array_sum(array_sum '、$ i));}、$ array);' :) – deceze

+0

これらは素晴らしい機能もあります!ありがとう。私は特に1ライナーが好きです。素晴らしい仕事@デセズとフランシス。 – DanielAttard

関連する問題