2014-07-24 5 views
0

J'ai essayé d'obtenir le code pour sortir les données dans un certain format afin que je puisse l'utiliser dans un graphique de graphique, et je voudrais obtenir de l'aide dans les étapes finales. Merci d'avance.Sum Valeurs de tableau mensuelles

Ceci est mon code qui produit le tableau ci-dessous.

$monthly_sales_array = array(); 
    $i=0; 
    foreach($ord as $sales) 
    { 
     $month_is = date('m-Y',$sales->order_date); 
     $monthly_sales_array['months'][$month_is][$i] = $sales->qty*$sales->price_per; 
     $i++; 
    } 

Array 
(
[months] => Array 
    (
     [07-2014] => Array 
      (
       [0] => 33 
       [1] => 33 
       [2] => 26 
       [3] => 26 
       [4] => 38.5 
       [5] => 33 
       [6] => 165     
      ) 

     [06-2014] => Array 
      (
       [21] => 0.01 
       [22] => 44 
       [23] => 48 
      ) 
    ) 
) 

Essayer d'obtenir ce résultat:

Array(
[months] => Array 
    (
     [07-2014] => 354.5 
     [06-2014] => 92.01 
    ) 
) 

Répondre

0

Essayez quelque chose comme ceci:

$monthly_sales_array = array(); 
$my_array = array(
    'months' => array(
     '07-2014' => array(
       '0' => '33', 
       '1' => '33', 
       '2' => '26', 
       '3' => '26', 
       '4' => '38.5', 
       '5' => '33', 
       '6' => '165' ,     
      ), 

     '06-2014' => array(
       '21' => '0.01', 
       '22' => '44', 
       '23' => '48', 
      ) 
     ) 
); 


foreach ($my_array['months'] as $key => $value) { 
    $sum = array_sum(array_map(function ($a) { return $a; }, $my_array['months'][$key])); 
    $monthly_sales_array['months'][$key] = $sum;  
} 
print_r($monthly_sales_array); 

SORTIE:

Array 
(
    [months] => Array 
     (
      [07-2014] => 354.5 
      [06-2014] => 92.01 
     ) 

) 
0

Vous aurez besoin d'un foreach. (Il y a d'autres façons de le faire, mais je trouve cela plus facile)

foreach($monthly_sales_array['months'] as &$month) { 
    $total=0; 
    foreach($month as $day) { 
    $total+=$day; 
    } 
    $month=$total; 
} 

Note: l'opérateur & dans foreach($monthly_sales_array['months'] as &$month) signifie que lorsque vous mettez à jour $month, il sera mis à jour dans le $monthly_sales_array.