2014-04-16 54 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)。 如果我不得不使用它,那么我可能会先看一步,看看这些数组是如何创建的,并且我会使用日期作为关键码

相关问题