2014-04-16 50 views
0

1個數組:我想從多個陣列獲得相同的鍵的總和

Array 
(
    [0] => Array 
     (
      [sales] => Array 
       (
        [0] => Array 
         (
          [Date] => 2014-04-01 
          [Units] => 1 
         ) 

        [1] => Array 
         (
          [Date] => 2014-04-02 
          [Units] => 7 
         ) 


) 

第二陣列::

Array 
(
    [0] => Array 
     (
      [sales] => Array 
       (
        [0] => Array 
         (
          [Date] => 2014-04-01 
          [Units] => 3 
         ) 

        [1] => Array 
         (
          [Date] => 2014-04-02 
          [Units] => 2 
         ) 


) 

第三陣列::

Array 
(
    [0] => Array 
     (
      [sales] => Array 
       (
        [0] => Array 
         (
          [Date] => 2014-04-01 
          [Units] => 0 
         ) 

        [1] => Array 
         (
          [Date] => 2014-04-02 
          [Units] => 5 
         ) 


) 

所需的輸出::

Array 
(     [0] => Array 
         (
          [Date] => 2014-04-01 
          [Units] => 4 
         ), 
         [1] => Array 
         (
          [Date] => 2014-04-02 
          [Units] => 14 
         ), 
) 
+4

詢問代碼的問題必須**證明對問題正在解決**。包括嘗試解決方案,爲什麼他們沒有工作,以及預期的結果。另請參閱:[堆棧溢出問題清單](http://meta.stackexchange.com/questions/156810/stack-overflow-question-checklist)。 –

回答

1
<?php 
$array1 = array("orange", "banana"); 
$array2 = array("ab", "ba"); 
$array3 = array("cd", "ef"); 
array_push($array1,$array2 , $array3); 
print_r($array1); 
?> 
0
<?php 

$arr1=array(
'Date' => '2014-04-02' 
'Units' => 5 
    ); 
$arr2=array(
'Date' => '2014-04-02' 
'Units' => 5 
    ); 
$arr3=array(
'Date' => '2014-04-02' 
'Units' => 5 
    ); 

$arr['sales'][0]=$arr1; 
    $arr['sales'][1]=$arr2; 
    $arr['sales'][2]=$arr3; 
$data[]=$arr; 

print_r($data); 
?> 
0

假設你有數組作爲你提到,一個辦法做到這一點是:

<?php 

$first = array(); 
$first[0] = array ("Date" => "2014-04-01", "Units" => 1); 
$first[1] = array ("Date" => "2014-04-02", "Units" => 7); 
$first[2] = array ("Date" => "2014-04-03", "Units" => 5); 
$first[3] = array ("Date" => "2014-04-04", "Units" => 1); 



echo "<pre>"; 
print_r ($first); 
echo "</pre>"; 
echo "<hr>"; 

$second = array(); 
$second[0] = array ("Date" => "2014-04-01", "Units" => 3); 
$second[1] = array ("Date" => "2014-04-02", "Units" => 2); 
$second[2] = array ("Date" => "2014-04-03", "Units" => 5); 
$second[3] = array ("Date" => "2014-04-04", "Units" => 2); 

echo "<pre>"; 
print_r ($second); 
echo "</pre>"; 
echo "<hr>"; 

$third = array(); 
$third[0] = array ("Date" => "2014-04-01", "Units" => 0); 
$third[1] = array ("Date" => "2014-04-02", "Units" => 5); 
$third[2] = array ("Date" => "2014-04-03", "Units" => 5); 
$third[3] = array ("Date" => "2014-04-04", "Units" => 4); 

echo "<pre>"; 
print_r ($third); 
echo "</pre>"; 
echo "<hr>The total is: "; 



$total = array(); 

foreach ($first as $key=>$day) { 
    $total[$key]=array("Date" => "2014-04-02", "Units" => ($first[$key]["Units"] +$second[$key]["Units"] +$third[$key]["Units"])); 

} 

echo "<pre>"; 
print_r ($total); 
echo "</pre>"; 
echo "<hr>"; 

但是這隻有當每個日期的關鍵是一樣的。 (又名,0總是對應2014-04-01)。 如果我不得不使用它,那麼我可能會先看一步,看看這些數組是如何創建的,並且我會使用日期作爲關鍵碼

相關問題